Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data RebaseName (p :: * -> * -> *) wX wY where
- AddName :: PatchInfo -> RebaseName p wX wY
- DelName :: PatchInfo -> RebaseName p wX wY
- Rename :: PatchInfo -> PatchInfo -> RebaseName p wX wY
- commuteNamePrim :: (RebaseName p :> PrimOf p) wX wY -> (PrimOf p :> RebaseName p) wX wY
- commutePrimName :: (PrimOf p :> RebaseName p) wX wY -> (RebaseName p :> PrimOf p) wX wY
- commuteNameNamed :: Invert p => CommuteFn (RebaseName p) (Named p)
- commuteNamedName :: Invert p => CommuteFn (Named p) (RebaseName p)
- canonizeNamePair :: (RebaseName p :> RebaseName p) wX wY -> FL (RebaseName p) wX wY
Documentation
data RebaseName (p :: * -> * -> *) wX wY where Source #
A RebaseName
encapsulates the concept of the name of a patch,
without any contents. This allows us to track explicit dependencies
in the rebase state, changing them to follow uses of amend-record
or unsuspend on a depended-on patch, and warning the user if any
are lost entirely.
AddName :: PatchInfo -> RebaseName p wX wY | |
DelName :: PatchInfo -> RebaseName p wX wY | |
Rename :: PatchInfo -> PatchInfo -> RebaseName p wX wY |
Eq2 (RebaseName p) Source # | |
Show2 (RebaseName p) Source # | |
Invert (RebaseName p) Source # | |
PatchInspect (RebaseName p) Source # | |
Commute (RebaseName p) Source # | |
ReadPatch (RebaseName p) Source # | |
Apply (RebaseName p) Source # | |
ShowPatch (RebaseName p) Source # | |
ShowPatchBasic (RebaseName p) Source # | |
PrimPatchBase p => PrimPatchBase (RebaseName p) Source # | |
Effect (RebaseName p) Source # | |
Show1 (RebaseName p wX) Source # | |
Show (RebaseName p wX wY) Source # | |
type ApplyState (RebaseName p) Source # | |
type PrimOf (RebaseName p) Source # | |
commuteNamePrim :: (RebaseName p :> PrimOf p) wX wY -> (PrimOf p :> RebaseName p) wX wY Source #
Commute a name patch and a primitive patch. They trivially commute so this just involves changing the witnesses.
commutePrimName :: (PrimOf p :> RebaseName p) wX wY -> (RebaseName p :> PrimOf p) wX wY Source #
Commute a primitive patch and a name patch. They trivially commute so this just involves changing the witnesses.
commuteNameNamed :: Invert p => CommuteFn (RebaseName p) (Named p) Source #
Commute a name patch and a named patch. In most cases this is trivial but we do need to check explicit dependencies.
commuteNamedName :: Invert p => CommuteFn (Named p) (RebaseName p) Source #
Commute a named patch and a name patch. In most cases this is trivial but we do need to check explicit dependencies.
canonizeNamePair :: (RebaseName p :> RebaseName p) wX wY -> FL (RebaseName p) wX wY Source #