darcs-2.16.5: a distributed, interactive, smart revision control system
Safe HaskellSafe-Inferred
LanguageHaskell2010

Darcs.Patch.RepoPatch

Synopsis

Documentation

type AnnotateRP p = (Annotate (PrimOf p), Invert (PrimOf p), Effect p) #

This constraint expresses what is needed for a repo patch to support the high-level interface to annotation (currently annotateFile and annotateDirectory)

class Apply p where #

Minimal complete definition

apply

Associated Types

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

Methods

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

unapply :: ApplyMonad (ApplyState p) m => p wX wY -> m () #

default unapply :: (ApplyMonad (ApplyState p) m, Invert p) => p wX wY -> m () #

Instances

Instances details
Apply Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Apply

Associated Types

type ApplyState Prim :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m () #

unapply :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m () #

Apply Prim # 
Instance details

Defined in Darcs.Patch.Prim.V1.Apply

Associated Types

type ApplyState Prim :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m () #

unapply :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m () #

Apply Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

Associated Types

type ApplyState Prim :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m () #

unapply :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m () #

Apply Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

Associated Types

type ApplyState Prim :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m () #

unapply :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m () #

Apply p => Apply (Invertible p) # 
Instance details

Defined in Darcs.Patch.Invertible

Associated Types

type ApplyState (Invertible p) :: (Type -> Type) -> Type #

Methods

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

unapply :: ApplyMonad (ApplyState (Invertible p)) m => Invertible p wX wY -> m () #

Apply p => Apply (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Associated Types

type ApplyState (Named p) :: (Type -> Type) -> Type #

Methods

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

unapply :: ApplyMonad (ApplyState (Named p)) m => Named p wX wY -> m () #

Apply prim => Apply (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Associated Types

type ApplyState (RebaseChange prim) :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState (RebaseChange prim)) m => RebaseChange prim wX wY -> m () #

unapply :: ApplyMonad (ApplyState (RebaseChange prim)) m => RebaseChange prim wX wY -> m () #

Apply prim => Apply (RebaseFixup prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Fixup

Associated Types

type ApplyState (RebaseFixup prim) :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState (RebaseFixup prim)) m => RebaseFixup prim wX wY -> m () #

unapply :: ApplyMonad (ApplyState (RebaseFixup prim)) m => RebaseFixup prim wX wY -> m () #

PrimPatch prim => Apply (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Apply

Associated Types

type ApplyState (RepoPatchV1 prim) :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState (RepoPatchV1 prim)) m => RepoPatchV1 prim wX wY -> m () #

unapply :: ApplyMonad (ApplyState (RepoPatchV1 prim)) m => RepoPatchV1 prim wX wY -> m () #

PrimPatch prim => Apply (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Associated Types

type ApplyState (RepoPatchV2 prim) :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState (RepoPatchV2 prim)) m => RepoPatchV2 prim wX wY -> m () #

unapply :: ApplyMonad (ApplyState (RepoPatchV2 prim)) m => RepoPatchV2 prim wX wY -> m () #

Apply p => Apply (FL p) # 
Instance details

Defined in Darcs.Patch.Apply

Associated Types

type ApplyState (FL p) :: (Type -> Type) -> Type #

Methods

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

unapply :: ApplyMonad (ApplyState (FL p)) m => FL p wX wY -> m () #

Apply p => Apply (RL p) # 
Instance details

Defined in Darcs.Patch.Apply

Associated Types

type ApplyState (RL p) :: (Type -> Type) -> Type #

Methods

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

unapply :: ApplyMonad (ApplyState (RL p)) m => RL p wX wY -> m () #

Apply p => Apply (WrappedNamed rt p) # 
Instance details

Defined in Darcs.Patch.Named.Wrapped

Associated Types

type ApplyState (WrappedNamed rt p) :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState (WrappedNamed rt p)) m => WrappedNamed rt p wX wY -> m () #

unapply :: ApplyMonad (ApplyState (WrappedNamed rt p)) m => WrappedNamed rt p wX wY -> m () #

Apply p => Apply (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Associated Types

type ApplyState (PatchInfoAndG rt p) :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState (PatchInfoAndG rt p)) m => PatchInfoAndG rt p wX wY -> m () #

unapply :: ApplyMonad (ApplyState (PatchInfoAndG rt p)) m => PatchInfoAndG rt p wX wY -> m () #

Apply p => Apply (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Associated Types

type ApplyState (PrimWithName name p) :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState (PrimWithName name p)) m => PrimWithName name p wX wY -> m () #

unapply :: ApplyMonad (ApplyState (PrimWithName name p)) m => PrimWithName name p wX wY -> m () #

PrimPatch prim => Apply (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Associated Types

type ApplyState (RepoPatchV3 name prim) :: (Type -> Type) -> Type #

Methods

apply :: ApplyMonad (ApplyState (RepoPatchV3 name prim)) m => RepoPatchV3 name prim wX wY -> m () #

unapply :: ApplyMonad (ApplyState (RepoPatchV3 name prim)) m => RepoPatchV3 name prim wX wY -> m () #

class Check p where #

Minimal complete definition

Nothing

Methods

isInconsistent :: p wX wY -> Maybe Doc #

Instances

Instances details
Check p => Check (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

isInconsistent :: Named p wX wY -> Maybe Doc #

Check (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Core

Methods

isInconsistent :: RepoPatchV1 prim wX wY -> Maybe Doc #

PrimPatch prim => Check (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

isInconsistent :: RepoPatchV2 prim wX wY -> Maybe Doc #

Check p => Check (FL p) # 
Instance details

Defined in Darcs.Patch.Repair

Methods

isInconsistent :: FL p wX wY -> Maybe Doc #

Check p => Check (RL p) # 
Instance details

Defined in Darcs.Patch.Repair

Methods

isInconsistent :: RL p wX wY -> Maybe Doc #

PrimPatch prim => Check (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

isInconsistent :: RepoPatchV3 name prim wX wY -> Maybe Doc #

class Commute p where #

Commute represents things that can be (possibly) commuted.

Instances should obey the following laws:

  • Symmetry
commute (p:>q) == Just (q':>p') <=> commute (q':>p') == Just (p':>q)
  • If an instance Invert p exists, then
commute (p:>q) == Just (q':>p') <=> commute (invert q:>invert p) == Just (invert p':>invert q')
  • The more general Square-Commute law
commute (p:>q) == Just (q':>p') => commute (invert p:>q') == Just (q:>invert p')

is required to hold only for primitive patches, i.e. if there is no instance Merge p, because together with merge it implies that any two patches commute.

Methods

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

Instances

Instances details
Commute Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Commute

Methods

commute :: (Prim :> Prim) wX wY -> Maybe ((Prim :> Prim) wX wY) #

Commute Prim # 
Instance details

Defined in Darcs.Patch.Prim.V1.Commute

Methods

commute :: (Prim :> Prim) wX wY -> Maybe ((Prim :> Prim) wX wY) #

Commute RebaseName # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Methods

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

Commute Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

Methods

commute :: (Prim :> Prim) wX wY -> Maybe ((Prim :> Prim) wX wY) #

Commute Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

Methods

commute :: (Prim :> Prim) wX wY -> Maybe ((Prim :> Prim) wX wY) #

Commute p => Commute (LabelledPatch p) # 
Instance details

Defined in Darcs.Patch.Choices

Methods

commute :: (LabelledPatch p :> LabelledPatch p) wX wY -> Maybe ((LabelledPatch p :> LabelledPatch p) wX wY) #

Commute p => Commute (Invertible p) # 
Instance details

Defined in Darcs.Patch.Invertible

Methods

commute :: (Invertible p :> Invertible p) wX wY -> Maybe ((Invertible p :> Invertible p) wX wY) #

Commute p => Commute (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

commute :: (Named p :> Named p) wX wY -> Maybe ((Named p :> Named p) wX wY) #

Commute prim => Commute (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Methods

commute :: (RebaseChange prim :> RebaseChange prim) wX wY -> Maybe ((RebaseChange prim :> RebaseChange prim) wX wY) #

Commute prim => Commute (RebaseFixup prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Fixup

Methods

commute :: (RebaseFixup prim :> RebaseFixup prim) wX wY -> Maybe ((RebaseFixup prim :> RebaseFixup prim) wX wY) #

PrimPatch prim => Commute (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Commute

Methods

commute :: (RepoPatchV1 prim :> RepoPatchV1 prim) wX wY -> Maybe ((RepoPatchV1 prim :> RepoPatchV1 prim) wX wY) #

PrimPatch prim => Commute (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

commute :: (RepoPatchV2 prim :> RepoPatchV2 prim) wX wY -> Maybe ((RepoPatchV2 prim :> RepoPatchV2 prim) wX wY) #

Commute p => Commute (FL p) # 
Instance details

Defined in Darcs.Patch.Commute

Methods

commute :: (FL p :> FL p) wX wY -> Maybe ((FL p :> FL p) wX wY) #

Commute p => Commute (RL p) # 
Instance details

Defined in Darcs.Patch.Commute

Methods

commute :: (RL p :> RL p) wX wY -> Maybe ((RL p :> RL p) wX wY) #

Commute p => Commute (WrappedNamed rt p) # 
Instance details

Defined in Darcs.Patch.Named.Wrapped

Methods

commute :: (WrappedNamed rt p :> WrappedNamed rt p) wX wY -> Maybe ((WrappedNamed rt p :> WrappedNamed rt p) wX wY) #

(PatchId p ~ PatchInfo, Commute p) => Commute (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

commute :: (PatchInfoAndG rt p :> PatchInfoAndG rt p) wX wY -> Maybe ((PatchInfoAndG rt p :> PatchInfoAndG rt p) wX wY) #

(SignedId name, Commute p) => Commute (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Methods

commute :: (PrimWithName name p :> PrimWithName name p) wX wY -> Maybe ((PrimWithName name p :> PrimWithName name p) wX wY) #

(SignedId name, StorableId name, PrimPatch prim) => Commute (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

commute :: (RepoPatchV3 name prim :> RepoPatchV3 name prim) wX wY -> Maybe ((RepoPatchV3 name prim :> RepoPatchV3 name prim) wX wY) #

class Conflict p where #

Methods

resolveConflicts :: RL p wO wX -> RL p wX wY -> [ConflictDetails (PrimOf p) wY] #

The first parameter is a context containing all patches preceding the ones for which we want to calculate the conflict resolution, which is the second parameter. Each element of the result list represents the resolution of one maximal set of transitively conflicting alternatives, in other words, a connected subset of the conflict graph. But the elements themselves must not conflict with each other, guaranteeing that they can be cleanly merged into a single FL of prims.

Instances

Instances details
(Commute p, Conflict p) => Conflict (Named p) #

This instance takes care of handling the interaction between conflict resolution and explicit dependencies. By definition, a conflict counts as resolved if another patch depends on it. This principle extends to explicit dependencies between Named patches, but not to (aggregate) implicit dependencies.

This means we count any patch inside a Named patch as resolved if some later Named patch depends on it explicitly. The patches contained inside a Named patch that is not explicitly depended on must be commuted one by one past those we know are resolved. It is important to realize that we must not do this commutation at the Named patch level but at the level below that.

Instance details

Defined in Darcs.Patch.Named

Methods

resolveConflicts :: RL (Named p) wO wX -> RL (Named p) wX wY -> [ConflictDetails (PrimOf (Named p)) wY] #

PrimPatch prim => Conflict (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Commute

Methods

resolveConflicts :: RL (RepoPatchV1 prim) wO wX -> RL (RepoPatchV1 prim) wX wY -> [ConflictDetails (PrimOf (RepoPatchV1 prim)) wY] #

PrimPatch prim => Conflict (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

resolveConflicts :: RL (RepoPatchV2 prim) wO wX -> RL (RepoPatchV2 prim) wX wY -> [ConflictDetails (PrimOf (RepoPatchV2 prim)) wY] #

(Commute p, Conflict p) => Conflict (PatchInfoAnd rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

resolveConflicts :: RL (PatchInfoAnd rt p) wO wX -> RL (PatchInfoAnd rt p) wX wY -> [ConflictDetails (PrimOf (PatchInfoAnd rt p)) wY] #

(SignedId name, StorableId name, PrimPatch prim) => Conflict (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Resolution

Methods

resolveConflicts :: RL (RepoPatchV3 name prim) wO wX -> RL (RepoPatchV3 name prim) wX wY -> [ConflictDetails (PrimOf (RepoPatchV3 name prim)) wY] #

class Effect p where #

Patches whose concrete effect can be expressed as a list of primitive patches.

A minimal definition would be either of effect or effectRL.

Methods

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

Instances

Instances details
Effect p => Effect (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

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

Effect p => Effect (WithDroppedDeps p) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Methods

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

PrimPatch prim => Effect (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Commute

Methods

effect :: RepoPatchV1 prim wX wY -> FL (PrimOf (RepoPatchV1 prim)) wX wY #

PrimPatch prim => Effect (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

effect :: RepoPatchV2 prim wX wY -> FL (PrimOf (RepoPatchV2 prim)) wX wY #

Effect p => Effect (FL p) # 
Instance details

Defined in Darcs.Patch.Effect

Methods

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

Effect p => Effect (RL p) # 
Instance details

Defined in Darcs.Patch.Effect

Methods

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

Effect p => Effect (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

effect :: PatchInfoAndG rt p wX wY -> FL (PrimOf (PatchInfoAndG rt p)) wX wY #

Effect (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

effect :: RepoPatchV3 name prim wX wY -> FL (PrimOf (RepoPatchV3 name prim)) wX wY #

class Eq2 p where #

An witness aware equality class. A minimal definition defines any one of unsafeCompare, =\/= and =/\=.

Minimal complete definition

Nothing

Methods

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

It is unsafe to define a class instance via this method, because if it returns True then the default implementations of =\/= and =/\= will coerce the equality of two witnesses.

Calling this method is safe, although =\/= or =/\= would be better choices as it is not usually meaningul to compare two patches that don't share either a starting or an ending context

(=\/=) :: p wA wB -> p wA wC -> EqCheck wB wC infix 4 #

Compare two things with the same starting witness. If the things compare equal, evidence of the ending witnesses being equal will be returned.

(=/\=) :: p wA wC -> p wB wC -> EqCheck wA wB infix 4 #

Compare two things with the same ending witness. If the things compare equal, evidence of the starting witnesses being equal will be returned.

Instances

Instances details
Eq2 WPatchInfo # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

unsafeCompare :: WPatchInfo wA wB -> WPatchInfo wC wD -> Bool #

(=\/=) :: WPatchInfo wA wB -> WPatchInfo wA wC -> EqCheck wB wC #

(=/\=) :: WPatchInfo wA wC -> WPatchInfo wB wC -> EqCheck wA wB #

Eq2 Hunk # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Core

Methods

unsafeCompare :: Hunk wA wB -> Hunk wC wD -> Bool #

(=\/=) :: Hunk wA wB -> Hunk wA wC -> EqCheck wB wC #

(=/\=) :: Hunk wA wC -> Hunk wB wC -> EqCheck wA wB #

Eq2 HunkMove # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Core

Methods

unsafeCompare :: HunkMove wA wB -> HunkMove wC wD -> Bool #

(=\/=) :: HunkMove wA wB -> HunkMove wA wC -> EqCheck wB wC #

(=/\=) :: HunkMove wA wC -> HunkMove wB wC -> EqCheck wA wB #

Eq2 Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Core

Methods

unsafeCompare :: Prim wA wB -> Prim wC wD -> Bool #

(=\/=) :: Prim wA wB -> Prim wA wC -> EqCheck wB wC #

(=/\=) :: Prim wA wC -> Prim wB wC -> EqCheck wA wB #

Eq2 DirPatchType # 
Instance details

Defined in Darcs.Patch.Prim.V1.Core

Methods

unsafeCompare :: DirPatchType wA wB -> DirPatchType wC wD -> Bool #

(=\/=) :: DirPatchType wA wB -> DirPatchType wA wC -> EqCheck wB wC #

(=/\=) :: DirPatchType wA wC -> DirPatchType wB wC -> EqCheck wA wB #

Eq2 FilePatchType # 
Instance details

Defined in Darcs.Patch.Prim.V1.Core

Methods

unsafeCompare :: FilePatchType wA wB -> FilePatchType wC wD -> Bool #

(=\/=) :: FilePatchType wA wB -> FilePatchType wA wC -> EqCheck wB wC #

(=/\=) :: FilePatchType wA wC -> FilePatchType wB wC -> EqCheck wA wB #

Eq2 Prim # 
Instance details

Defined in Darcs.Patch.Prim.V1.Core

Methods

unsafeCompare :: Prim wA wB -> Prim wC wD -> Bool #

(=\/=) :: Prim wA wB -> Prim wA wC -> EqCheck wB wC #

(=/\=) :: Prim wA wC -> Prim wB wC -> EqCheck wA wB #

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 #

Eq2 Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

Methods

unsafeCompare :: Prim wA wB -> Prim wC wD -> Bool #

(=\/=) :: Prim wA wB -> Prim wA wC -> EqCheck wB wC #

(=/\=) :: Prim wA wC -> Prim wB wC -> EqCheck wA wB #

Eq2 Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

Methods

unsafeCompare :: Prim wA wB -> Prim wC wD -> Bool #

(=\/=) :: Prim wA wB -> Prim wA wC -> EqCheck wB wC #

(=/\=) :: Prim wA wC -> Prim wB wC -> EqCheck wA wB #

Eq2 p => Eq2 (Invertible p) # 
Instance details

Defined in Darcs.Patch.Invertible

Methods

unsafeCompare :: Invertible p wA wB -> Invertible p wC wD -> Bool #

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

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

Eq2 (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

unsafeCompare :: Named p wA wB -> Named p wC wD -> Bool #

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

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

Eq2 prim => Eq2 (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Commute

Methods

unsafeCompare :: RepoPatchV1 prim wA wB -> RepoPatchV1 prim wC wD -> Bool #

(=\/=) :: RepoPatchV1 prim wA wB -> RepoPatchV1 prim wA wC -> EqCheck wB wC #

(=/\=) :: RepoPatchV1 prim wA wC -> RepoPatchV1 prim wB wC -> EqCheck wA wB #

PrimPatch prim => Eq2 (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

unsafeCompare :: RepoPatchV2 prim wA wB -> RepoPatchV2 prim wC wD -> Bool #

(=\/=) :: RepoPatchV2 prim wA wB -> RepoPatchV2 prim wA wC -> EqCheck wB wC #

(=/\=) :: RepoPatchV2 prim wA wC -> RepoPatchV2 prim wB wC -> EqCheck wA wB #

(Eq2 p, Commute p) => Eq2 (FL p) # 
Instance details

Defined in Darcs.Patch.Permutations

Methods

unsafeCompare :: FL p wA wB -> FL p wC wD -> Bool #

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

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

(Eq2 p, Commute p) => Eq2 (RL p) # 
Instance details

Defined in Darcs.Patch.Permutations

Methods

unsafeCompare :: RL p wA wB -> RL p wC wD -> Bool #

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

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

Eq2 (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

unsafeCompare :: PatchInfoAndG rt p wA wB -> PatchInfoAndG rt p wC wD -> Bool #

(=\/=) :: PatchInfoAndG rt p wA wB -> PatchInfoAndG rt p wA wC -> EqCheck wB wC #

(=/\=) :: PatchInfoAndG rt p wA wC -> PatchInfoAndG rt p wB wC -> EqCheck wA wB #

(Eq name, Eq2 p) => Eq2 (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Methods

unsafeCompare :: PrimWithName name p wA wB -> PrimWithName name p wC wD -> Bool #

(=\/=) :: PrimWithName name p wA wB -> PrimWithName name p wA wC -> EqCheck wB wC #

(=/\=) :: PrimWithName name p wA wC -> PrimWithName name p wB wC -> EqCheck wA wB #

(SignedId name, Eq2 prim, Commute prim) => Eq2 (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

unsafeCompare :: RepoPatchV3 name prim wA wB -> RepoPatchV3 name prim wC wD -> Bool #

(=\/=) :: RepoPatchV3 name prim wA wB -> RepoPatchV3 name prim wA wC -> EqCheck wB wC #

(=/\=) :: RepoPatchV3 name prim wA wC -> RepoPatchV3 name prim wB wC -> EqCheck wA wB #

(Eq2 a, Eq2 b) => Eq2 (a :> b) # 
Instance details

Defined in Darcs.Patch.Witnesses.Ordered

Methods

unsafeCompare :: (a :> b) wA wB -> (a :> b) wC wD -> Bool #

(=\/=) :: (a :> b) wA wB -> (a :> b) wA wC -> EqCheck wB wC #

(=/\=) :: (a :> b) wA wC -> (a :> b) wB wC -> EqCheck wA wB #

class FromPrim p where #

Minimal complete definition

fromAnonymousPrim

Methods

fromAnonymousPrim :: PrimOf p wX wY -> p wX wY #

fromPrim :: PatchId p -> PrimOf p wX wY -> p wX wY #

default fromPrim :: PatchId p ~ () => PatchId p -> PrimOf p wX wY -> p wX wY #

fromPrims :: PatchInfo -> FL (PrimOf p) wX wY -> FL p wX wY #

default fromPrims :: PatchId p ~ () => PatchInfo -> FL (PrimOf p) wX wY -> FL p wX wY #

Instances

Instances details
FromPrim (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Core

Methods

fromAnonymousPrim :: PrimOf (RepoPatchV1 prim) wX wY -> RepoPatchV1 prim wX wY #

fromPrim :: PatchId (RepoPatchV1 prim) -> PrimOf (RepoPatchV1 prim) wX wY -> RepoPatchV1 prim wX wY #

fromPrims :: PatchInfo -> FL (PrimOf (RepoPatchV1 prim)) wX wY -> FL (RepoPatchV1 prim) wX wY #

FromPrim (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

fromAnonymousPrim :: PrimOf (RepoPatchV2 prim) wX wY -> RepoPatchV2 prim wX wY #

fromPrim :: PatchId (RepoPatchV2 prim) -> PrimOf (RepoPatchV2 prim) wX wY -> RepoPatchV2 prim wX wY #

fromPrims :: PatchInfo -> FL (PrimOf (RepoPatchV2 prim)) wX wY -> FL (RepoPatchV2 prim) wX wY #

FromPrim (RepoPatchV3 prim) # 
Instance details

Defined in Darcs.Patch.V3

Methods

fromAnonymousPrim :: PrimOf (RepoPatchV3 prim) wX wY -> RepoPatchV3 prim wX wY #

fromPrim :: PatchId (RepoPatchV3 prim) -> PrimOf (RepoPatchV3 prim) wX wY -> RepoPatchV3 prim wX wY #

fromPrims :: PatchInfo -> FL (PrimOf (RepoPatchV3 prim)) wX wY -> FL (RepoPatchV3 prim) wX wY #

class IsHunk p where #

Methods

isHunk :: p wX wY -> Maybe (FileHunk wX wY) #

Instances

Instances details
IsHunk Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Core

Methods

isHunk :: Prim wX wY -> Maybe (FileHunk wX wY) #

IsHunk Prim # 
Instance details

Defined in Darcs.Patch.Prim.V1.Core

Methods

isHunk :: Prim wX wY -> Maybe (FileHunk wX wY) #

IsHunk Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

Methods

isHunk :: Prim wX wY -> Maybe (FileHunk wX wY) #

IsHunk Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

Methods

isHunk :: Prim wX wY -> Maybe (FileHunk wX wY) #

IsHunk (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

isHunk :: Named p wX wY -> Maybe (FileHunk wX wY) #

IsHunk (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Methods

isHunk :: RebaseChange prim wX wY -> Maybe (FileHunk wX wY) #

IsHunk prim => IsHunk (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Commute

Methods

isHunk :: RepoPatchV1 prim wX wY -> Maybe (FileHunk wX wY) #

IsHunk prim => IsHunk (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

isHunk :: RepoPatchV2 prim wX wY -> Maybe (FileHunk wX wY) #

IsHunk (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

isHunk :: PatchInfoAndG rt p wX wY -> Maybe (FileHunk wX wY) #

IsHunk p => IsHunk (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Methods

isHunk :: PrimWithName name p wX wY -> Maybe (FileHunk wX wY) #

IsHunk prim => IsHunk (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

isHunk :: RepoPatchV3 name prim wX wY -> Maybe (FileHunk wX wY) #

class CleanMerge p => Merge p where #

Patches that can always be merged, even if they conflict.

Instances should obey the following laws:

symmetry
merge (p :\/: q) == q' :/\: p' <=> merge (q :\/: p) == p' :/\: q'
merge-commute
merge (p :\/: q) == q' :/\: p' ==> commute (p :> q') == Just (q :> p')

that is, the two branches of a merge commute to each other.

extension
cleanMerge (p :\/: q) == Just (q' :/\: p') => merge (p :\/: q) == q' :/\: p'

that is, merge is an extension of cleanMerge.

Methods

merge :: (p :\/: p) wX wY -> (p :/\: p) wX wY #

Instances

Instances details
Merge p => Merge (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

merge :: (Named p :\/: Named p) wX wY -> (Named p :/\: Named p) wX wY #

PrimPatch prim => Merge (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Commute

Methods

merge :: (RepoPatchV1 prim :\/: RepoPatchV1 prim) wX wY -> (RepoPatchV1 prim :/\: RepoPatchV1 prim) wX wY #

PrimPatch prim => Merge (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

merge :: (RepoPatchV2 prim :\/: RepoPatchV2 prim) wX wY -> (RepoPatchV2 prim :/\: RepoPatchV2 prim) wX wY #

Merge p => Merge (FL p) # 
Instance details

Defined in Darcs.Patch.Merge

Methods

merge :: (FL p :\/: FL p) wX wY -> (FL p :/\: FL p) wX wY #

(PatchId p ~ PatchInfo, Merge p) => Merge (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

merge :: (PatchInfoAndG rt p :\/: PatchInfoAndG rt p) wX wY -> (PatchInfoAndG rt p :/\: PatchInfoAndG rt p) wX wY #

(SignedId name, StorableId name, PrimPatch prim) => Merge (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

merge :: (RepoPatchV3 name prim :\/: RepoPatchV3 name prim) wX wY -> (RepoPatchV3 name prim :/\: RepoPatchV3 name prim) wX wY #

class PatchInspect p where #

Methods

listTouchedFiles :: p wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> p wX wY -> Bool #

Instances

Instances details
PatchInspect Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Core

Methods

listTouchedFiles :: Prim wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> Prim wX wY -> Bool #

PatchInspect Prim # 
Instance details

Defined in Darcs.Patch.Prim.V1.Core

Methods

listTouchedFiles :: Prim wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> Prim wX wY -> Bool #

PatchInspect RebaseName # 
Instance details

Defined in Darcs.Patch.Rebase.Name

PatchInspect Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

Methods

listTouchedFiles :: Prim wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> Prim wX wY -> Bool #

PatchInspect Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

Methods

listTouchedFiles :: Prim wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> Prim wX wY -> Bool #

PatchInspect p => PatchInspect (LabelledPatch p) # 
Instance details

Defined in Darcs.Patch.Choices

PatchInspect p => PatchInspect (Invertible p) # 
Instance details

Defined in Darcs.Patch.Invertible

Methods

listTouchedFiles :: Invertible p wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> Invertible p wX wY -> Bool #

PatchInspect p => PatchInspect (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

listTouchedFiles :: Named p wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> Named p wX wY -> Bool #

PatchInspect prim => PatchInspect (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Methods

listTouchedFiles :: RebaseChange prim wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> RebaseChange prim wX wY -> Bool #

PatchInspect prim => PatchInspect (RebaseFixup prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Fixup

Methods

listTouchedFiles :: RebaseFixup prim wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> RebaseFixup prim wX wY -> Bool #

(PrimPatchBase p, PatchInspect p) => PatchInspect (Suspended p) # 
Instance details

Defined in Darcs.Patch.Rebase.Suspended

Methods

listTouchedFiles :: Suspended p wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> Suspended p wX wY -> Bool #

PrimPatch prim => PatchInspect (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Commute

Methods

listTouchedFiles :: RepoPatchV1 prim wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> RepoPatchV1 prim wX wY -> Bool #

PatchInspect prim => PatchInspect (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

listTouchedFiles :: RepoPatchV2 prim wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> RepoPatchV2 prim wX wY -> Bool #

PatchInspect p => PatchInspect (FL p) # 
Instance details

Defined in Darcs.Patch.Inspect

Methods

listTouchedFiles :: FL p wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> FL p wX wY -> Bool #

PatchInspect p => PatchInspect (RL p) # 
Instance details

Defined in Darcs.Patch.Inspect

Methods

listTouchedFiles :: RL p wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> RL p wX wY -> Bool #

PatchInspect p => PatchInspect (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

listTouchedFiles :: PatchInfoAndG rt p wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> PatchInfoAndG rt p wX wY -> Bool #

PatchInspect p => PatchInspect (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Methods

listTouchedFiles :: PrimWithName name p wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> PrimWithName name p wX wY -> Bool #

PatchInspect prim => PatchInspect (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

listTouchedFiles :: RepoPatchV3 name prim wX wY -> [AnchoredPath] #

hunkMatches :: (ByteString -> Bool) -> RepoPatchV3 name prim wX wY -> Bool #

class PatchListFormat p where #

Showing and reading lists of patches. This class allows us to control how lists of patches are formatted on disk. For legacy reasons V1 patches have their own special treatment (see ListFormat). Other patch types use the default format which just puts them in a sequence without separators or any prelude/epilogue.

This means that 'FL (FL p)' etc would be ambiguous, so there are no instances for 'FL p' or other list types.

Minimal complete definition

Nothing

Instances

Instances details
PatchListFormat Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Show

PatchListFormat Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

PatchListFormat Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

PatchListFormat (Bracketed p) # 
Instance details

Defined in Darcs.Patch.Bracketed

PatchListFormat (Named p) # 
Instance details

Defined in Darcs.Patch.Named

PatchListFormat (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

PatchListFormat (RebaseFixup prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Fixup

PatchListFormat (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Core

PatchListFormat (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

PatchListFormat (WrappedNamed rt p) # 
Instance details

Defined in Darcs.Patch.Named.Wrapped

PatchListFormat (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

PatchListFormat (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

PatchListFormat (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

patchListFormat :: ListFormat (RepoPatchV3 name prim) #

class PrimPatch (PrimOf p) => PrimPatchBase p #

Associated Types

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

Instances

Instances details
PrimPatchBase p => PrimPatchBase (Invertible p) # 
Instance details

Defined in Darcs.Patch.Invertible

Associated Types

type PrimOf (Invertible p) :: Type -> Type -> Type #

PrimPatchBase p => PrimPatchBase (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Associated Types

type PrimOf (Named p) :: Type -> Type -> Type #

PrimPatch prim => PrimPatchBase (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Associated Types

type PrimOf (RebaseChange prim) :: Type -> Type -> Type #

PrimPatchBase p => PrimPatchBase (WithDroppedDeps p) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Associated Types

type PrimOf (WithDroppedDeps p) :: Type -> Type -> Type #

PrimPatch prim => PrimPatchBase (RebaseFixup prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Fixup

Associated Types

type PrimOf (RebaseFixup prim) :: Type -> Type -> Type #

PrimPatch prim => PrimPatchBase (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Core

Associated Types

type PrimOf (RepoPatchV1 prim) :: Type -> Type -> Type #

PrimPatch prim => PrimPatchBase (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Associated Types

type PrimOf (RepoPatchV2 prim) :: Type -> Type -> Type #

PrimPatchBase p => PrimPatchBase (FL p) # 
Instance details

Defined in Darcs.Patch.FromPrim

Associated Types

type PrimOf (FL p) :: Type -> Type -> Type #

PrimPatchBase p => PrimPatchBase (RL p) # 
Instance details

Defined in Darcs.Patch.FromPrim

Associated Types

type PrimOf (RL p) :: Type -> Type -> Type #

PrimPatchBase p => PrimPatchBase (WrappedNamed rt p) # 
Instance details

Defined in Darcs.Patch.Named.Wrapped

Associated Types

type PrimOf (WrappedNamed rt p) :: Type -> Type -> Type #

PrimPatchBase p => PrimPatchBase (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Associated Types

type PrimOf (PatchInfoAndG rt p) :: Type -> Type -> Type #

PrimPatch prim => PrimPatchBase (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Associated Types

type PrimOf (RepoPatchV3 name prim) :: Type -> Type -> Type #

class ReadPatch p where #

This class is used to decode patches from their binary representation.

Methods

readPatch' :: Parser (Sealed (p wX)) #

Instances

Instances details
ReadPatch Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Read

Methods

readPatch' :: Parser (Sealed (Prim wX)) #

ReadPatch RebaseName # 
Instance details

Defined in Darcs.Patch.Rebase.Name

ReadPatch Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

Methods

readPatch' :: Parser (Sealed (Prim wX)) #

ReadPatch Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

Methods

readPatch' :: Parser (Sealed (Prim wX)) #

ReadPatch p => ReadPatch (Bracketed p) # 
Instance details

Defined in Darcs.Patch.Read

Methods

readPatch' :: Parser (Sealed (Bracketed p wX)) #

(ReadPatch p, PatchListFormat p) => ReadPatch (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

readPatch' :: Parser (Sealed (Named p wX)) #

(ReadPatch prim, PatchListFormat prim) => ReadPatch (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Methods

readPatch' :: Parser (Sealed (RebaseChange prim wX)) #

ReadPatch prim => ReadPatch (RebaseFixup prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Fixup

Methods

readPatch' :: Parser (Sealed (RebaseFixup prim wX)) #

(PrimPatchBase p, PatchListFormat p, ReadPatch p) => ReadPatch (RebaseItem p) # 
Instance details

Defined in Darcs.Patch.Rebase.Legacy.Item

Methods

readPatch' :: Parser (Sealed (RebaseItem p wX)) #

(PrimPatchBase p, PatchListFormat p, ReadPatch p, RepoPatch p) => ReadPatch (Suspended p) # 
Instance details

Defined in Darcs.Patch.Rebase.Suspended

Methods

readPatch' :: Parser (Sealed (Suspended p wX)) #

PrimPatch prim => ReadPatch (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Read

Methods

readPatch' :: Parser (Sealed (RepoPatchV1 prim wX)) #

PrimPatch prim => ReadPatch (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

readPatch' :: Parser (Sealed (RepoPatchV2 prim wX)) #

(ReadPatch p, PatchListFormat p) => ReadPatch (FL p) # 
Instance details

Defined in Darcs.Patch.Read

Methods

readPatch' :: Parser (Sealed (FL p wX)) #

(ReadPatch p, PatchListFormat p) => ReadPatch (RL p) # 
Instance details

Defined in Darcs.Patch.Read

Methods

readPatch' :: Parser (Sealed (RL p wX)) #

(ReadPatch p, PrimPatchBase p, FromPrim p, Effect p, PatchListFormat p, RepoPatch p, IsRepoType rt) => ReadPatch (WrappedNamed rt p) # 
Instance details

Defined in Darcs.Patch.Named.Wrapped

Methods

readPatch' :: Parser (Sealed (WrappedNamed rt p wX)) #

(ReadPatch p, Ident p, PatchId p ~ PatchInfo) => ReadPatch (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

readPatch' :: Parser (Sealed (PatchInfoAndG rt p wX)) #

(StorableId name, ReadPatch p) => ReadPatch (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Methods

readPatch' :: Parser (Sealed (PrimWithName name p wX)) #

(SignedId name, StorableId name, PrimPatch prim) => ReadPatch (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

readPatch' :: Parser (Sealed (RepoPatchV3 name prim wX)) #

class Apply p => RepairToFL p where #

RepairToFL is implemented by single patches that can be repaired (Prim, Patch, RepoPatchV2) There is a default so that patch types with no current legacy problems don't need to have an implementation.

Minimal complete definition

Nothing

Methods

applyAndTryToFixFL :: ApplyMonad (ApplyState p) m => p wX wY -> m (Maybe (String, FL p wX wY)) #

Instances

Instances details
RepairToFL Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Apply

Methods

applyAndTryToFixFL :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m (Maybe (String, FL Prim wX wY)) #

RepairToFL Prim # 
Instance details

Defined in Darcs.Patch.Prim.V1.Apply

Methods

applyAndTryToFixFL :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m (Maybe (String, FL Prim wX wY)) #

RepairToFL Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

Methods

applyAndTryToFixFL :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m (Maybe (String, FL Prim wX wY)) #

RepairToFL Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

Methods

applyAndTryToFixFL :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m (Maybe (String, FL Prim wX wY)) #

PrimPatch prim => RepairToFL (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Apply

Methods

applyAndTryToFixFL :: ApplyMonad (ApplyState (RepoPatchV1 prim)) m => RepoPatchV1 prim wX wY -> m (Maybe (String, FL (RepoPatchV1 prim) wX wY)) #

PrimPatch prim => RepairToFL (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

applyAndTryToFixFL :: ApplyMonad (ApplyState (RepoPatchV2 prim)) m => RepoPatchV2 prim wX wY -> m (Maybe (String, FL (RepoPatchV2 prim) wX wY)) #

Apply p => RepairToFL (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Methods

applyAndTryToFixFL :: ApplyMonad (ApplyState (PrimWithName name p)) m => PrimWithName name p wX wY -> m (Maybe (String, FL (PrimWithName name p) wX wY)) #

PrimPatch prim => RepairToFL (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

applyAndTryToFixFL :: ApplyMonad (ApplyState (RepoPatchV3 name prim)) m => RepoPatchV3 name prim wX wY -> m (Maybe (String, FL (RepoPatchV3 name prim) wX wY)) #

class ShowPatchBasic p => ShowContextPatch p where #

Methods

showContextPatch :: ApplyMonad (ApplyState p) m => ShowPatchFor -> p wX wY -> m Doc #

showContextPatch is used to add context to a patch, as diff -u does. Thus, it differs from showPatch only for hunks. It is used for instance before putting it into a bundle. As this unified context is not included in patch representation, this requires access to the tree.

Instances

Instances details
ShowContextPatch Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Show

ShowContextPatch Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

ShowContextPatch Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

ShowContextPatch p => ShowContextPatch (Invertible p) # 
Instance details

Defined in Darcs.Patch.Invertible

(Apply p, IsHunk p, PatchListFormat p, ShowContextPatch p) => ShowContextPatch (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

showContextPatch :: ApplyMonad (ApplyState (Named p)) m => ShowPatchFor -> Named p wX wY -> m Doc #

(ShowPatchBasic prim, Invert prim, PatchListFormat prim) => ShowContextPatch (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

PrimPatch prim => ShowContextPatch (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Viewing

Methods

showContextPatch :: ApplyMonad (ApplyState (RepoPatchV1 prim)) m => ShowPatchFor -> RepoPatchV1 prim wX wY -> m Doc #

PrimPatch prim => ShowContextPatch (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

showContextPatch :: ApplyMonad (ApplyState (RepoPatchV2 prim)) m => ShowPatchFor -> RepoPatchV2 prim wX wY -> m Doc #

(Apply p, IsHunk p, PatchListFormat p, ShowContextPatch p) => ShowContextPatch (FL p) # 
Instance details

Defined in Darcs.Patch.Viewing

Methods

showContextPatch :: ApplyMonad (ApplyState (FL p)) m => ShowPatchFor -> FL p wX wY -> m Doc #

(ShowContextPatch p, Apply p, IsHunk p, PatchListFormat p) => ShowContextPatch (RL p) # 
Instance details

Defined in Darcs.Patch.Viewing

Methods

showContextPatch :: ApplyMonad (ApplyState (RL p)) m => ShowPatchFor -> RL p wX wY -> m Doc #

ShowContextPatch p => ShowContextPatch (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

(StorableId name, ShowContextPatch p) => ShowContextPatch (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Methods

showContextPatch :: ApplyMonad (ApplyState (PrimWithName name p)) m => ShowPatchFor -> PrimWithName name p wX wY -> m Doc #

(StorableId name, PrimPatch prim) => ShowContextPatch (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

showContextPatch :: ApplyMonad (ApplyState (RepoPatchV3 name prim)) m => ShowPatchFor -> RepoPatchV3 name prim wX wY -> m Doc #

class ShowPatchBasic p => ShowPatch p where #

This class is used only for user interaction, not for storage. The default implementations for description and content are suitable only for PrimPatch and RepoPatch types. Logically, description should default to mempty while content should default to displayPatch. We define them the other way around so that showFriendly gives reasonable results for all patch types.

Minimal complete definition

summary

Methods

content :: p wX wY -> Doc #

description :: p wX wY -> Doc #

summary :: p wX wY -> Doc #

summaryFL :: FL p wX wY -> Doc #

thing :: p wX wY -> String #

things :: p wX wY -> String #

Instances

Instances details
ShowPatch Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Show

Methods

content :: Prim wX wY -> Doc #

description :: Prim wX wY -> Doc #

summary :: Prim wX wY -> Doc #

summaryFL :: FL Prim wX wY -> Doc #

thing :: Prim wX wY -> String #

things :: Prim wX wY -> String #

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 #

ShowPatch Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

Methods

content :: Prim wX wY -> Doc #

description :: Prim wX wY -> Doc #

summary :: Prim wX wY -> Doc #

summaryFL :: FL Prim wX wY -> Doc #

thing :: Prim wX wY -> String #

things :: Prim wX wY -> String #

ShowPatch Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

Methods

content :: Prim wX wY -> Doc #

description :: Prim wX wY -> Doc #

summary :: Prim wX wY -> Doc #

summaryFL :: FL Prim wX wY -> Doc #

thing :: Prim wX wY -> String #

things :: Prim wX wY -> String #

ShowPatch p => ShowPatch (Invertible p) # 
Instance details

Defined in Darcs.Patch.Invertible

Methods

content :: Invertible p wX wY -> Doc #

description :: Invertible p wX wY -> Doc #

summary :: Invertible p wX wY -> Doc #

summaryFL :: FL (Invertible p) wX wY -> Doc #

thing :: Invertible p wX wY -> String #

things :: Invertible p wX wY -> String #

(Summary p, PatchListFormat p, PrimPatchBase p, ShowPatch p) => ShowPatch (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

content :: Named p wX wY -> Doc #

description :: Named p wX wY -> Doc #

summary :: Named p wX wY -> Doc #

summaryFL :: FL (Named p) wX wY -> Doc #

thing :: Named p wX wY -> String #

things :: Named p wX wY -> String #

PrimPatch prim => ShowPatch (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Methods

content :: RebaseChange prim wX wY -> Doc #

description :: RebaseChange prim wX wY -> Doc #

summary :: RebaseChange prim wX wY -> Doc #

summaryFL :: FL (RebaseChange prim) wX wY -> Doc #

thing :: RebaseChange prim wX wY -> String #

things :: RebaseChange prim wX wY -> String #

PrimPatch prim => ShowPatch (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Viewing

Methods

content :: RepoPatchV1 prim wX wY -> Doc #

description :: RepoPatchV1 prim wX wY -> Doc #

summary :: RepoPatchV1 prim wX wY -> Doc #

summaryFL :: FL (RepoPatchV1 prim) wX wY -> Doc #

thing :: RepoPatchV1 prim wX wY -> String #

things :: RepoPatchV1 prim wX wY -> String #

PrimPatch prim => ShowPatch (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

content :: RepoPatchV2 prim wX wY -> Doc #

description :: RepoPatchV2 prim wX wY -> Doc #

summary :: RepoPatchV2 prim wX wY -> Doc #

summaryFL :: FL (RepoPatchV2 prim) wX wY -> Doc #

thing :: RepoPatchV2 prim wX wY -> String #

things :: RepoPatchV2 prim wX wY -> String #

(PatchListFormat p, ShowPatch p) => ShowPatch (FL p) # 
Instance details

Defined in Darcs.Patch.Viewing

Methods

content :: FL p wX wY -> Doc #

description :: FL p wX wY -> Doc #

summary :: FL p wX wY -> Doc #

summaryFL :: FL (FL p) wX wY -> Doc #

thing :: FL p wX wY -> String #

things :: FL p wX wY -> String #

(PatchListFormat p, ShowPatch p) => ShowPatch (RL p) # 
Instance details

Defined in Darcs.Patch.Viewing

Methods

content :: RL p wX wY -> Doc #

description :: RL p wX wY -> Doc #

summary :: RL p wX wY -> Doc #

summaryFL :: FL (RL p) wX wY -> Doc #

thing :: RL p wX wY -> String #

things :: RL p wX wY -> String #

(Summary p, PatchListFormat p, ShowPatch p) => ShowPatch (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

content :: PatchInfoAndG rt p wX wY -> Doc #

description :: PatchInfoAndG rt p wX wY -> Doc #

summary :: PatchInfoAndG rt p wX wY -> Doc #

summaryFL :: FL (PatchInfoAndG rt p) wX wY -> Doc #

thing :: PatchInfoAndG rt p wX wY -> String #

things :: PatchInfoAndG rt p wX wY -> String #

(StorableId name, PrimDetails p, ShowPatchBasic p) => ShowPatch (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Methods

content :: PrimWithName name p wX wY -> Doc #

description :: PrimWithName name p wX wY -> Doc #

summary :: PrimWithName name p wX wY -> Doc #

summaryFL :: FL (PrimWithName name p) wX wY -> Doc #

thing :: PrimWithName name p wX wY -> String #

things :: PrimWithName name p wX wY -> String #

(SignedId name, StorableId name, PrimPatch prim) => ShowPatch (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

content :: RepoPatchV3 name prim wX wY -> Doc #

description :: RepoPatchV3 name prim wX wY -> Doc #

summary :: RepoPatchV3 name prim wX wY -> Doc #

summaryFL :: FL (RepoPatchV3 name prim) wX wY -> Doc #

thing :: RepoPatchV3 name prim wX wY -> String #

things :: RepoPatchV3 name prim wX wY -> String #

class ShowPatchBasic p where #

Methods

showPatch :: ShowPatchFor -> p wX wY -> Doc #

Instances

Instances details
ShowPatchBasic Prim # 
Instance details

Defined in Darcs.Patch.Prim.FileUUID.Show

Methods

showPatch :: ShowPatchFor -> Prim wX wY -> Doc #

ShowPatchBasic RebaseName # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Methods

showPatch :: ShowPatchFor -> RebaseName wX wY -> Doc #

ShowPatchBasic Prim # 
Instance details

Defined in Darcs.Patch.V1.Prim

Methods

showPatch :: ShowPatchFor -> Prim wX wY -> Doc #

ShowPatchBasic Prim # 
Instance details

Defined in Darcs.Patch.V2.Prim

Methods

showPatch :: ShowPatchFor -> Prim wX wY -> Doc #

ShowPatchBasic p => ShowPatchBasic (Bracketed p) # 
Instance details

Defined in Darcs.Patch.Bracketed

Methods

showPatch :: ShowPatchFor -> Bracketed p wX wY -> Doc #

ShowPatchBasic p => ShowPatchBasic (Invertible p) # 
Instance details

Defined in Darcs.Patch.Invertible

Methods

showPatch :: ShowPatchFor -> Invertible p wX wY -> Doc #

(PatchListFormat p, ShowPatchBasic p) => ShowPatchBasic (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

showPatch :: ShowPatchFor -> Named p wX wY -> Doc #

(ShowPatchBasic prim, Invert prim, PatchListFormat prim) => ShowPatchBasic (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

Methods

showPatch :: ShowPatchFor -> RebaseChange prim wX wY -> Doc #

ShowPatchBasic prim => ShowPatchBasic (RebaseFixup prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Fixup

Methods

showPatch :: ShowPatchFor -> RebaseFixup prim wX wY -> Doc #

(PrimPatchBase p, PatchListFormat p, ShowPatchBasic p) => ShowPatchBasic (Suspended p) # 
Instance details

Defined in Darcs.Patch.Rebase.Suspended

Methods

showPatch :: ShowPatchFor -> Suspended p wX wY -> Doc #

(PatchListFormat prim, ShowPatchBasic prim) => ShowPatchBasic (Unwound prim) # 
Instance details

Defined in Darcs.Patch.Unwind

Methods

showPatch :: ShowPatchFor -> Unwound prim wX wY -> Doc #

ShowPatchBasic prim => ShowPatchBasic (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Show

Methods

showPatch :: ShowPatchFor -> RepoPatchV1 prim wX wY -> Doc #

PrimPatch prim => ShowPatchBasic (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

showPatch :: ShowPatchFor -> RepoPatchV2 prim wX wY -> Doc #

(PatchListFormat p, ShowPatchBasic p) => ShowPatchBasic (FL p) # 
Instance details

Defined in Darcs.Patch.Viewing

Methods

showPatch :: ShowPatchFor -> FL p wX wY -> Doc #

(PatchListFormat p, ShowPatchBasic p) => ShowPatchBasic (RL p) # 
Instance details

Defined in Darcs.Patch.Viewing

Methods

showPatch :: ShowPatchFor -> RL p wX wY -> Doc #

(ShowPatchBasic p, PatchListFormat p) => ShowPatchBasic (WrappedNamed rt p) # 
Instance details

Defined in Darcs.Patch.Named.Wrapped

Methods

showPatch :: ShowPatchFor -> WrappedNamed rt p wX wY -> Doc #

ShowPatchBasic p => ShowPatchBasic (PatchInfoAndG rt p) # 
Instance details

Defined in Darcs.Patch.PatchInfoAnd

Methods

showPatch :: ShowPatchFor -> PatchInfoAndG rt p wX wY -> Doc #

(StorableId name, ShowPatchBasic p) => ShowPatchBasic (PrimWithName name p) # 
Instance details

Defined in Darcs.Patch.Prim.WithName

Methods

showPatch :: ShowPatchFor -> PrimWithName name p wX wY -> Doc #

(StorableId name, PrimPatch prim) => ShowPatchBasic (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

showPatch :: ShowPatchFor -> RepoPatchV3 name prim wX wY -> Doc #

class Summary p where #

Methods

conflictedEffect :: p wX wY -> [IsConflictedPrim (PrimOf p)] #

Instances

Instances details
Summary p => Summary (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

conflictedEffect :: Named p wX wY -> [IsConflictedPrim (PrimOf (Named p))] #

Commute prim => Summary (RebaseChange prim) # 
Instance details

Defined in Darcs.Patch.Rebase.Change

PrimPatch prim => Summary (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Commute

Summary (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Summary p => Summary (FL p) # 
Instance details

Defined in Darcs.Patch.Summary

Methods

conflictedEffect :: FL p wX wY -> [IsConflictedPrim (PrimOf (FL p))] #

Summary (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

conflictedEffect :: RepoPatchV3 name prim wX wY -> [IsConflictedPrim (PrimOf (RepoPatchV3 name prim))] #

class ToPrim p where #

Methods

toPrim :: p wX wY -> Maybe (PrimOf p wX wY) #

Instances

Instances details
ToPrim (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Core

Methods

toPrim :: RepoPatchV1 prim wX wY -> Maybe (PrimOf (RepoPatchV1 prim) wX wY) #

ToPrim (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

toPrim :: RepoPatchV2 prim wX wY -> Maybe (PrimOf (RepoPatchV2 prim) wX wY) #

ToPrim (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

toPrim :: RepoPatchV3 name prim wX wY -> Maybe (PrimOf (RepoPatchV3 name prim) wX wY) #

class Unwind p where #

Methods

fullUnwind :: p wX wY -> Unwound (PrimOf p) wX wY #

Get hold of the underlying primitives for a given patch, placed in the context of the patch. If there are conflicts then context patches will be needed.

Instances

Instances details
(PrimPatchBase p, Unwind p) => Unwind (Named p) # 
Instance details

Defined in Darcs.Patch.Named

Methods

fullUnwind :: Named p wX wY -> Unwound (PrimOf (Named p)) wX wY #

PrimPatch prim => Unwind (RepoPatchV1 prim) # 
Instance details

Defined in Darcs.Patch.V1.Commute

Methods

fullUnwind :: RepoPatchV1 prim wX wY -> Unwound (PrimOf (RepoPatchV1 prim)) wX wY #

PrimPatch prim => Unwind (RepoPatchV2 prim) # 
Instance details

Defined in Darcs.Patch.V2.RepoPatch

Methods

fullUnwind :: RepoPatchV2 prim wX wY -> Unwound (PrimOf (RepoPatchV2 prim)) wX wY #

(Invert prim, Commute prim, Eq2 prim) => Unwind (RepoPatchV3 name prim) # 
Instance details

Defined in Darcs.Patch.V3.Core

Methods

fullUnwind :: RepoPatchV3 name prim wX wY -> Unwound (PrimOf (RepoPatchV3 name prim)) wX wY #