darcs-2.18.5: a distributed, interactive, smart revision control system

Safe Haskell | None
Language | Haskell2010

Darcs.Patch.Rebase.Name

Synopsis

- data RebaseName wX wY where
  - AddName :: forall wX wY. PatchInfo -> RebaseName wX wY
  - DelName :: forall wX wY. PatchInfo -> RebaseName wX wY
  - Rename :: forall wX wY. PatchInfo -> PatchInfo -> RebaseName wX wY
- commuteNamePrim :: forall (prim :: Type -> Type -> Type) wX wY. (RebaseName :> prim) wX wY -> (prim :> RebaseName) wX wY
- commutePrimName :: forall (prim :: Type -> Type -> Type) wX wY. (prim :> RebaseName) wX wY -> (RebaseName :> prim) wX wY
- commuterIdNamed :: forall (p1 :: Type -> Type -> Type) (p2 :: Type -> Type -> Type). CommuteFn p1 p2 -> CommuteFn p1 (Named p2)
- commuterNamedId :: forall (p1 :: Type -> Type -> Type) (p2 :: Type -> Type -> Type). CommuteFn p1 p2 -> CommuteFn (Named p1) p2
- commuteNameNamed :: forall (p :: Type -> Type -> Type) wX wY. (RebaseName :> Named p) wX wY -> Maybe ((Named p :> RebaseName) wX wY)
- commuteNamedName :: forall (p :: Type -> Type -> Type) wX wY. (Named p :> RebaseName) wX wY -> Maybe ((RebaseName :> Named p) wX wY)
- pushFixupName :: PushFixupFn RebaseName RebaseName (FL RebaseName) (Maybe2 RebaseName)

# Documentation

data RebaseName wX wY where #

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.

Constructors

AddName :: forall wX wY. PatchInfo -> RebaseName wX wY |
DelName :: forall wX wY. PatchInfo -> RebaseName wX wY |
Rename :: forall wX wY. PatchInfo -> PatchInfo -> RebaseName wX wY |

#### Instances

Instances details

Commute RebaseName # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods commute :: (RebaseName :> RebaseName) wX wY -> Maybe ((RebaseName :> RebaseName) wX wY) #
PatchInspect RebaseName # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods listTouchedFiles :: RebaseName wX wY -> [AnchoredPath] # hunkMatches :: (ByteString -> Bool) -> RebaseName wX wY -> Bool #
Invert RebaseName # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods invert :: RebaseName wX wY -> RebaseName wY wX #
ReadPatch RebaseName # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods readPatch' :: Parser (Sealed (RebaseName wX)) #
ShowPatch RebaseName # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods content :: RebaseName wX wY -> Doc # description :: RebaseName wX wY -> Doc # summary :: RebaseName wX wY -> Doc # summaryFL :: FL RebaseName wX wY -> Doc # thing :: RebaseName wX wY -> String # things :: RebaseName wX wY -> String #
ShowPatchBasic RebaseName # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods showPatch :: ShowPatchFor -> RebaseName wX wY -> Doc #
Eq2 RebaseName # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods unsafeCompare :: RebaseName wA wB -> RebaseName wC wD -> Bool # (=\/=) :: RebaseName wA wB -> RebaseName wA wC -> EqCheck wB wC # (=/\=) :: RebaseName wA wC -> RebaseName wB wC -> EqCheck wA wB #
Show2 RebaseName # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods showDict2 :: ShowDict (RebaseName wX wY) #
Show1 (RebaseName wX) # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods showDict1 :: Dict (Show (RebaseName wX wX0)) #
Show (RebaseName wX wY) # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods showsPrec :: Int -> RebaseName wX wY -> ShowS # show :: RebaseName wX wY -> String # showList :: [RebaseName wX wY] -> ShowS #
Eq (RebaseName wX wY) # |
Instance details Defined in Darcs.Patch.Rebase.Name Methods (==) :: RebaseName wX wY -> RebaseName wX wY -> Bool # (/=) :: RebaseName wX wY -> RebaseName wX wY -> Bool #

commuteNamePrim :: forall (prim :: Type -> Type -> Type) wX wY. (RebaseName :> prim) wX wY -> (prim :> RebaseName) wX wY #

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 :: forall (prim :: Type -> Type -> Type) wX wY. (prim :> RebaseName) wX wY -> (RebaseName :> prim) wX wY #

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 :: forall (p1 :: Type -> Type -> Type) (p2 :: Type -> Type -> Type). CommuteFn p1 p2 -> CommuteFn p1 (Named p2) #

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 :: forall (p1 :: Type -> Type -> Type) (p2 :: Type -> Type -> Type). CommuteFn p1 p2 -> CommuteFn (Named p1) p2 #

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 :: forall (p :: Type -> Type -> Type) wX wY. (RebaseName :> Named p) wX wY -> Maybe ((Named p :> RebaseName) wX wY) #

Commute a name patch and a named patch. In most cases this is trivial but we do need to check explicit dependencies.

commuteNamedName :: forall (p :: Type -> Type -> Type) wX wY. (Named p :> RebaseName) wX wY -> Maybe ((RebaseName :> Named p) wX wY) #

Commute a named patch and a name patch. In most cases this is trivial but we do need to check explicit dependencies.

pushFixupName :: PushFixupFn RebaseName RebaseName (FL RebaseName) (Maybe2 RebaseName) #