Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Darcs.Patch.RepoPatch
Synopsis
- type RepoPatch p = (AnnotateRP p, Apply p, ApplyState p ~ ApplyState (PrimOf p), Check p, Commute p, Conflict p, Effect p, Eq2 p, FromPrim p, IsHunk p, IsHunk (PrimOf p), Merge p, PatchInspect p, PatchListFormat p, PrimPatchBase p, ReadPatch p, RepairToFL p, ShowContextPatch p, ShowPatch p, Summary p, ToPrim p, Unwind p)
- type AnnotateRP p = (Annotate (PrimOf p), Invert (PrimOf p), Effect p)
- class Apply p where
- type ApplyState p :: (* -> *) -> *
- apply :: ApplyMonad (ApplyState p) m => p wX wY -> m ()
- unapply :: ApplyMonad (ApplyState p) m => p wX wY -> m ()
- class Check p where
- isInconsistent :: p wX wY -> Maybe Doc
- class Commute p where
- class Conflict p where
- resolveConflicts :: RL p wO wX -> RL p wX wY -> [ConflictDetails (PrimOf p) wY]
- class Effect p where
- class Eq2 p where
- class FromPrim p where
- class IsHunk p where
- class CleanMerge p => Merge p where
- class PatchInspect p where
- listTouchedFiles :: p wX wY -> [AnchoredPath]
- hunkMatches :: (ByteString -> Bool) -> p wX wY -> Bool
- class PatchListFormat p where
- class PrimPatch (PrimOf p) => PrimPatchBase p where
- type PrimOf (p :: * -> * -> *) :: * -> * -> *
- class ReadPatch p where
- readPatch' :: Parser (Sealed (p wX))
- class Apply p => RepairToFL p where
- applyAndTryToFixFL :: ApplyMonad (ApplyState p) m => p wX wY -> m (Maybe (String, FL p wX wY))
- class ShowPatchBasic p => ShowContextPatch p where
- showContextPatch :: ApplyMonad (ApplyState p) m => ShowPatchFor -> p wX wY -> m Doc
- class ShowPatchBasic p => ShowPatch p where
- class ShowPatchBasic p where
- showPatch :: ShowPatchFor -> p wX wY -> Doc
- class Summary p where
- conflictedEffect :: p wX wY -> [IsConflictedPrim (PrimOf p)]
- class ToPrim p where
- class Unwind p where
- fullUnwind :: p wX wY -> Unwound (PrimOf p) wX wY
Documentation
type RepoPatch p = (AnnotateRP p, Apply p, ApplyState p ~ ApplyState (PrimOf p), Check p, Commute p, Conflict p, Effect p, Eq2 p, FromPrim p, IsHunk p, IsHunk (PrimOf p), Merge p, PatchInspect p, PatchListFormat p, PrimPatchBase p, ReadPatch p, RepairToFL p, ShowContextPatch p, ShowPatch p, Summary p, ToPrim p, Unwind p) #
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)
Minimal complete definition
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
Apply Prim # | |
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 # | |
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 # | |
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 # | |
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) # | |
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) # | |
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) # | |
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) # | |
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) # | |
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) # | |
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) # | |
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) # | |
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) # | |
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) # | |
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) # | |
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) # | |
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 () # |
Minimal complete definition
Nothing
Methods
isInconsistent :: p wX wY -> Maybe Doc #
Instances
Check p => Check (Named p) # | |
Defined in Darcs.Patch.Named Methods isInconsistent :: Named p wX wY -> Maybe Doc # | |
Check (RepoPatchV1 prim) # | |
Defined in Darcs.Patch.V1.Core Methods isInconsistent :: RepoPatchV1 prim wX wY -> Maybe Doc # | |
PrimPatch prim => Check (RepoPatchV2 prim) # | |
Defined in Darcs.Patch.V2.RepoPatch Methods isInconsistent :: RepoPatchV2 prim wX wY -> Maybe Doc # | |
Check p => Check (FL p) # | |
Defined in Darcs.Patch.Repair Methods isInconsistent :: FL p wX wY -> Maybe Doc # | |
Check p => Check (RL p) # | |
Defined in Darcs.Patch.Repair Methods isInconsistent :: RL p wX wY -> Maybe Doc # | |
PrimPatch prim => Check (RepoPatchV3 name prim) # | |
Defined in Darcs.Patch.V3.Core Methods isInconsistent :: RepoPatchV3 name prim wX wY -> Maybe Doc # |
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
exists, thenInvert
p
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
, because together with Merge
pmerge
it implies that
any two patches commute.
Instances
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
(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 This means we count any patch inside a |
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) # | |
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) # | |
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) # | |
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) # | |
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] # |
Patches whose concrete effect can be expressed as a list of primitive patches.
A minimal definition would be either of effect
or effectRL
.
Instances
Effect p => Effect (Named p) # | |
Effect p => Effect (WithDroppedDeps p) # | |
Defined in Darcs.Patch.Rebase.Change Methods effect :: WithDroppedDeps p wX wY -> FL (PrimOf (WithDroppedDeps p)) wX wY # | |
PrimPatch prim => Effect (RepoPatchV1 prim) # | |
Defined in Darcs.Patch.V1.Commute Methods effect :: RepoPatchV1 prim wX wY -> FL (PrimOf (RepoPatchV1 prim)) wX wY # | |
PrimPatch prim => Effect (RepoPatchV2 prim) # | |
Defined in Darcs.Patch.V2.RepoPatch Methods effect :: RepoPatchV2 prim wX wY -> FL (PrimOf (RepoPatchV2 prim)) wX wY # | |
Effect p => Effect (FL p) # | |
Effect p => Effect (RL p) # | |
Effect p => Effect (PatchInfoAndG rt p) # | |
Defined in Darcs.Patch.PatchInfoAnd Methods effect :: PatchInfoAndG rt p wX wY -> FL (PrimOf (PatchInfoAndG rt p)) wX wY # | |
Effect (RepoPatchV3 name prim) # | |
Defined in Darcs.Patch.V3.Core Methods effect :: RepoPatchV3 name prim wX wY -> FL (PrimOf (RepoPatchV3 name prim)) wX wY # |
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
Minimal complete definition
Methods
fromAnonymousPrim :: PrimOf p wX wY -> p wX wY #
fromPrim :: PatchId p -> PrimOf p wX wY -> p wX wY #
fromPrims :: PatchInfo -> FL (PrimOf p) wX wY -> FL p wX wY #
Instances
Instances
IsHunk Prim # | |
IsHunk Prim # | |
IsHunk Prim # | |
IsHunk Prim # | |
IsHunk (Named p) # | |
IsHunk (RebaseChange prim) # | |
Defined in Darcs.Patch.Rebase.Change Methods isHunk :: RebaseChange prim wX wY -> Maybe (FileHunk wX wY) # | |
IsHunk prim => IsHunk (RepoPatchV1 prim) # | |
Defined in Darcs.Patch.V1.Commute Methods isHunk :: RepoPatchV1 prim wX wY -> Maybe (FileHunk wX wY) # | |
IsHunk prim => IsHunk (RepoPatchV2 prim) # | |
Defined in Darcs.Patch.V2.RepoPatch Methods isHunk :: RepoPatchV2 prim wX wY -> Maybe (FileHunk wX wY) # | |
IsHunk (PatchInfoAndG rt p) # | |
Defined in Darcs.Patch.PatchInfoAnd Methods isHunk :: PatchInfoAndG rt p wX wY -> Maybe (FileHunk wX wY) # | |
IsHunk p => IsHunk (PrimWithName name p) # | |
Defined in Darcs.Patch.Prim.WithName Methods isHunk :: PrimWithName name p wX wY -> Maybe (FileHunk wX wY) # | |
IsHunk prim => IsHunk (RepoPatchV3 name prim) # | |
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 ofcleanMerge
.
Instances
Merge p => Merge (Named p) # | |
PrimPatch prim => Merge (RepoPatchV1 prim) # | |
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) # | |
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) # | |
(PatchId p ~ PatchInfo, Merge p) => Merge (PatchInfoAndG rt p) # | |
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) # | |
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
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
Methods
patchListFormat :: ListFormat p #
Instances
class PrimPatch (PrimOf p) => PrimPatchBase p #
Instances
This class is used to decode patches from their binary representation.
Methods
readPatch' :: Parser (Sealed (p wX)) #
Instances
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
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
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
Instances
class ShowPatchBasic p where #
Methods
showPatch :: ShowPatchFor -> p wX wY -> Doc #
Instances
Methods
conflictedEffect :: p wX wY -> [IsConflictedPrim (PrimOf p)] #
Instances
Summary p => Summary (Named p) # | |
Defined in Darcs.Patch.Named Methods conflictedEffect :: Named p wX wY -> [IsConflictedPrim (PrimOf (Named p))] # | |
Commute prim => Summary (RebaseChange prim) # | |
Defined in Darcs.Patch.Rebase.Change Methods conflictedEffect :: RebaseChange prim wX wY -> [IsConflictedPrim (PrimOf (RebaseChange prim))] # | |
PrimPatch prim => Summary (RepoPatchV1 prim) # | |
Defined in Darcs.Patch.V1.Commute Methods conflictedEffect :: RepoPatchV1 prim wX wY -> [IsConflictedPrim (PrimOf (RepoPatchV1 prim))] # | |
Summary (RepoPatchV2 prim) # | |
Defined in Darcs.Patch.V2.RepoPatch Methods conflictedEffect :: RepoPatchV2 prim wX wY -> [IsConflictedPrim (PrimOf (RepoPatchV2 prim))] # | |
Summary p => Summary (FL p) # | |
Defined in Darcs.Patch.Summary Methods conflictedEffect :: FL p wX wY -> [IsConflictedPrim (PrimOf (FL p))] # | |
Summary (RepoPatchV3 name prim) # | |
Defined in Darcs.Patch.V3.Core Methods conflictedEffect :: RepoPatchV3 name prim wX wY -> [IsConflictedPrim (PrimOf (RepoPatchV3 name prim))] # |
Instances
ToPrim (RepoPatchV1 prim) # | |
Defined in Darcs.Patch.V1.Core Methods toPrim :: RepoPatchV1 prim wX wY -> Maybe (PrimOf (RepoPatchV1 prim) wX wY) # | |
ToPrim (RepoPatchV2 prim) # | |
Defined in Darcs.Patch.V2.RepoPatch Methods toPrim :: RepoPatchV2 prim wX wY -> Maybe (PrimOf (RepoPatchV2 prim) wX wY) # | |
ToPrim (RepoPatchV3 name prim) # | |
Defined in Darcs.Patch.V3.Core Methods toPrim :: RepoPatchV3 name prim wX wY -> Maybe (PrimOf (RepoPatchV3 name prim) wX wY) # |
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
(PrimPatchBase p, Unwind p) => Unwind (Named p) # | |
Defined in Darcs.Patch.Named | |
PrimPatch prim => Unwind (RepoPatchV1 prim) # | |
Defined in Darcs.Patch.V1.Commute Methods fullUnwind :: RepoPatchV1 prim wX wY -> Unwound (PrimOf (RepoPatchV1 prim)) wX wY # | |
PrimPatch prim => Unwind (RepoPatchV2 prim) # | |
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) # | |
Defined in Darcs.Patch.V3.Core Methods fullUnwind :: RepoPatchV3 name prim wX wY -> Unwound (PrimOf (RepoPatchV3 name prim)) wX wY # |