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

Safe HaskellNone
LanguageHaskell2010

Darcs.Patch.Rebase.Name

Synopsis

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.

Constructors

AddName :: PatchInfo -> RebaseName p wX wY 
DelName :: PatchInfo -> RebaseName p wX wY 
Rename :: PatchInfo -> PatchInfo -> RebaseName p wX wY 

Instances

MyEq (RebaseName p) Source # 

Methods

unsafeCompare :: RebaseName p wA wB -> RebaseName p wC wD -> Bool Source #

(=\/=) :: RebaseName p wA wB -> RebaseName p wA wC -> EqCheck wB wC Source #

(=/\=) :: RebaseName p wA wC -> RebaseName p wB wC -> EqCheck wA wB Source #

Show2 (RebaseName p) Source # 

Methods

showDict2 :: ShowDict (RebaseName p wX wY) Source #

PatchInspect (RebaseName p) Source # 
ReadPatch (RebaseName p) Source # 

Methods

readPatch' :: ParserM m => m (Sealed (RebaseName p wX)) Source #

Invert (RebaseName p) Source # 

Methods

invert :: RebaseName p wX wY -> RebaseName p wY wX Source #

Commute (RebaseName p) Source # 

Methods

commute :: (RebaseName p :> RebaseName p) wX wY -> Maybe ((RebaseName p :> RebaseName p) wX wY) Source #

Apply p => Apply (RebaseName p) Source # 

Associated Types

type ApplyState (RebaseName p :: * -> * -> *) :: (* -> *) -> * Source #

Methods

apply :: ApplyMonad (ApplyState (RebaseName p)) m => RebaseName p wX wY -> m () Source #

ShowPatch (RebaseName p) Source # 
ShowPatchBasic (RebaseName p) Source # 

Methods

showPatch :: RebaseName p wX wY -> Doc Source #

Apply p => Patchy (RebaseName p) Source # 
PrimPatchBase p => PrimPatchBase (RebaseName p) Source # 

Associated Types

type PrimOf (RebaseName p :: * -> * -> *) :: * -> * -> * Source #

Effect (RebaseName p) Source # 

Methods

effect :: RebaseName p wX wY -> FL (PrimOf (RebaseName p)) wX wY Source #

effectRL :: RebaseName p wX wY -> RL (PrimOf (RebaseName p)) wX wY Source #

Show1 (RebaseName p wX) Source # 

Methods

showDict1 :: ShowDict (RebaseName p wX wX) Source #

Show (RebaseName p wX wY) Source # 

Methods

showsPrec :: Int -> RebaseName p wX wY -> ShowS #

show :: RebaseName p wX wY -> String #

showList :: [RebaseName p wX wY] -> ShowS #

type ApplyState (RebaseName p) Source # 
type PrimOf (RebaseName p) Source # 
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.