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

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
  - commute :: (p :> p) wX wY -> Maybe ((p :> p) wX wY)
- class Conflict p where
  - resolveConflicts :: RL p wO wX -> RL p wX wY -> [ConflictDetails (PrimOf p) wY]
- class Effect p where
  - effect :: p wX wY -> FL (PrimOf p) wX wY
- class Eq2 p where
  - unsafeCompare :: p wA wB -> p wC wD -> Bool
  - (=\/=) :: p wA wB -> p wA wC -> EqCheck wB wC
  - (=/\=) :: p wA wC -> p wB wC -> EqCheck wA wB
- class FromPrim p where
  - 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
- class IsHunk p where
  - isHunk :: p wX wY -> Maybe (FileHunk wX wY)
- class CleanMerge p => Merge p where
  - merge :: (p :\/: p) wX wY -> (p :/\: p) wX wY
- class PatchInspect p where
  - listTouchedFiles :: p wX wY -> [AnchoredPath]
  - hunkMatches :: (ByteString -> Bool) -> p wX wY -> Bool
- class PatchListFormat p where
  - patchListFormat :: ListFormat p
- 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
  - 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
- 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
  - toPrim :: p wX wY -> Maybe (PrimOf p wX wY)
- 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)

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 Methods listTouchedFiles :: RebaseName wX wY -> [AnchoredPath] # hunkMatches :: (ByteString -> Bool) -> RebaseName wX wY -> Bool #
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 Methods listTouchedFiles :: LabelledPatch p wX wY -> [AnchoredPath] # hunkMatches :: (ByteString -> Bool) -> LabelledPatch p wX wY -> Bool #
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

Methods

patchListFormat :: ListFormat p #

#### Instances

Instances details

PatchListFormat Prim # |
Instance details Defined in Darcs.Patch.Prim.FileUUID.Show Methods patchListFormat :: ListFormat Prim #
PatchListFormat Prim # |
Instance details Defined in Darcs.Patch.V1.Prim Methods patchListFormat :: ListFormat Prim #
PatchListFormat Prim # |
Instance details Defined in Darcs.Patch.V2.Prim Methods patchListFormat :: ListFormat Prim #
PatchListFormat (Bracketed p) # |
Instance details Defined in Darcs.Patch.Bracketed Methods patchListFormat :: ListFormat (Bracketed p) #
PatchListFormat (Named p) # |
Instance details Defined in Darcs.Patch.Named Methods patchListFormat :: ListFormat (Named p) #
PatchListFormat (RebaseChange prim) # |
Instance details Defined in Darcs.Patch.Rebase.Change Methods patchListFormat :: ListFormat (RebaseChange prim) #
PatchListFormat (RebaseFixup prim) # |
Instance details Defined in Darcs.Patch.Rebase.Fixup Methods patchListFormat :: ListFormat (RebaseFixup prim) #
PatchListFormat (RepoPatchV1 prim) # |
Instance details Defined in Darcs.Patch.V1.Core Methods patchListFormat :: ListFormat (RepoPatchV1 prim) #
PatchListFormat (RepoPatchV2 prim) # |
Instance details Defined in Darcs.Patch.V2.RepoPatch Methods patchListFormat :: ListFormat (RepoPatchV2 prim) #
PatchListFormat (WrappedNamed rt p) # |
Instance details Defined in Darcs.Patch.Named.Wrapped Methods patchListFormat :: ListFormat (WrappedNamed rt p) #
PatchListFormat (PatchInfoAndG rt p) # |
Instance details Defined in Darcs.Patch.PatchInfoAnd Methods patchListFormat :: ListFormat (PatchInfoAndG rt p) #
PatchListFormat (PrimWithName name p) # |
Instance details Defined in Darcs.Patch.Prim.WithName Methods patchListFormat :: ListFormat (PrimWithName name p) #
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 Methods readPatch' :: Parser (Sealed (RebaseName wX)) #
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 Methods showContextPatch :: ApplyMonad (ApplyState Prim) m => ShowPatchFor -> Prim wX wY -> m Doc #
ShowContextPatch Prim # |
Instance details Defined in Darcs.Patch.V1.Prim Methods showContextPatch :: ApplyMonad (ApplyState Prim) m => ShowPatchFor -> Prim wX wY -> m Doc #
ShowContextPatch Prim # |
Instance details Defined in Darcs.Patch.V2.Prim Methods showContextPatch :: ApplyMonad (ApplyState Prim) m => ShowPatchFor -> Prim wX wY -> m Doc #
ShowContextPatch p => ShowContextPatch (Invertible p) # |
Instance details Defined in Darcs.Patch.Invertible Methods showContextPatch :: ApplyMonad (ApplyState (Invertible p)) m => ShowPatchFor -> Invertible p wX wY -> m Doc #
(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 Methods showContextPatch :: ApplyMonad (ApplyState (RebaseChange prim)) m => ShowPatchFor -> RebaseChange prim wX wY -> m Doc #
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 Methods showContextPatch :: ApplyMonad (ApplyState (PatchInfoAndG rt p)) m => ShowPatchFor -> PatchInfoAndG rt p wX wY -> m Doc #
(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 Methods conflictedEffect :: RebaseChange prim wX wY -> [IsConflictedPrim (PrimOf (RebaseChange prim))] #
PrimPatch prim => Summary (RepoPatchV1 prim) # |
Instance details Defined in Darcs.Patch.V1.Commute Methods conflictedEffect :: RepoPatchV1 prim wX wY -> [IsConflictedPrim (PrimOf (RepoPatchV1 prim))] #
Summary (RepoPatchV2 prim) # |
Instance details Defined in Darcs.Patch.V2.RepoPatch Methods conflictedEffect :: RepoPatchV2 prim wX wY -> [IsConflictedPrim (PrimOf (RepoPatchV2 prim))] #
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 #