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 :: PrimPatchBase p => (RebaseName p :> PrimOf p) wX wY -> (PrimOf p :> RebaseName p) wX wY
- commutePrimName :: PrimPatchBase p => (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)
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 |
Show2 (RebaseName p) | |
MyEq (RebaseName p) | |
PatchInspect (RebaseName p) | |
ReadPatch (RebaseName p) | |
Invert (RebaseName p) | |
Commute (RebaseName p) | |
Apply p => Apply (RebaseName p) | |
ShowPatch (RebaseName p) | |
ShowPatchBasic (RebaseName p) | |
Apply p => Patchy (RebaseName p) | |
PrimPatchBase p => PrimPatchBase (RebaseName p) | |
Effect (RebaseName p) | |
Show1 (RebaseName p wX) | |
Show (RebaseName p wX wY) | |
type ApplyState (RebaseName p) = ApplyState p | |
type PrimOf (RebaseName p) = PrimOf p |
commuteNamePrim :: PrimPatchBase p => (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 :: PrimPatchBase p => (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.