Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data RebaseName wX wY where
- AddName :: PatchInfo -> RebaseName wX wY
- DelName :: PatchInfo -> RebaseName wX wY
- Rename :: PatchInfo -> PatchInfo -> RebaseName wX wY
- commuteNamePrim :: (RebaseName :> prim) wX wY -> (prim :> RebaseName) wX wY
- commutePrimName :: (prim :> RebaseName) wX wY -> (RebaseName :> prim) wX wY
- commuterIdNamed :: CommuteFn p1 p2 -> CommuteFn p1 (Named p2)
- commuterNamedId :: CommuteFn p1 p2 -> CommuteFn (Named p1) p2
- commuteNameNamed :: CommuteFn RebaseName (Named p)
- commuteNamedName :: CommuteFn (Named p) RebaseName
- pushFixupName :: PushFixupFn RebaseName RebaseName (FL RebaseName) (Maybe2 RebaseName)
Documentation
data RebaseName 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 wX wY | |
DelName :: PatchInfo -> RebaseName wX wY | |
Rename :: PatchInfo -> PatchInfo -> RebaseName wX wY |
Instances
commuteNamePrim :: (RebaseName :> prim) wX wY -> (prim :> RebaseName) wX wY Source #
Commute a RebaseName
and a primitive patch. They trivially
commute so this just involves changing the witnesses.
This is unsafe if the patch being commuted actually has a
name (e.g. Named or PatchInfo - PrimWithName is ok),
commutePrimName :: (prim :> RebaseName) wX wY -> (RebaseName :> prim) wX wY Source #
Commute a primitive patch and a RebaseName
. They trivially
commute so this just involves changing the witnesses.
This is unsafe if the patch being commuted actually has a
name (e.g. Named or PatchInfo - PrimWithName is ok),
commuterIdNamed :: CommuteFn p1 p2 -> CommuteFn p1 (Named p2) Source #
Commute an unnamed patch with a named patch. This is unsafe if the second patch actually does have a name (e.g. Named, PatchInfoAnd, etc), as it won't check the explicit dependencies.
commuterNamedId :: CommuteFn p1 p2 -> CommuteFn (Named p1) p2 Source #
Commute an unnamed patch with a named patch. This is unsafe if the first patch actually does have a name (e.g. Named, PatchInfoAnd, etc), as it won't check the explicit dependencies.
commuteNameNamed :: CommuteFn RebaseName (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 :: CommuteFn (Named p) RebaseName Source #
Commute a named patch and a name patch. In most cases this is trivial but we do need to check explicit dependencies.