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

Darcs.Patch.Rebase.Name

Synopsis

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

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

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.