Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Darcs.Patch.V3.Core
Description
Conflictor
s a la camp.
Similar to the camp paper, but with a few differences:
- no reverse conflictors and no Invert instance
- instead we directly implement cleanMerge
- minor details of merge and commute due to bug fixes
The proofs in this module assume that whenever we create a conflictor we maintain the following invariants:
- A conflictor reverts a patch in its context iff it is the first patch that conflicts with it. This implies that any patch a conflictor reverts exists in its context as an unconflicted Prim.
- If v depends on u and p conflicts with u then it also conflicts with v.
Synopsis
- data RepoPatchV3 name prim wX wY where
- Prim :: PrimWithName name prim wX wY -> RepoPatchV3 name prim wX wY
- Conflictor :: FL (PrimWithName name prim) wX wY -> Set (Contexted (PrimWithName name prim) wY) -> Contexted (PrimWithName name prim) wY -> RepoPatchV3 name prim wX wY
- pattern PrimP :: TestOnly => PrimWithName name prim wX wY -> RepoPatchV3 name prim wX wY
- pattern ConflictorP :: TestOnly => FL (PrimWithName name prim) wX wY -> Set (Contexted (PrimWithName name prim) wY) -> Contexted (PrimWithName name prim) wY -> RepoPatchV3 name prim wX wY
- (+|) :: Ord a => a -> Set a -> Set a
- (-|) :: Ord a => a -> Set a -> Set a
Documentation
data RepoPatchV3 name prim wX wY where Source #
Constructors
Prim :: PrimWithName name prim wX wY -> RepoPatchV3 name prim wX wY | |
Conflictor | |
Fields
|
Instances
pattern PrimP :: TestOnly => PrimWithName name prim wX wY -> RepoPatchV3 name prim wX wY Source #
pattern ConflictorP :: TestOnly => FL (PrimWithName name prim) wX wY -> Set (Contexted (PrimWithName name prim) wY) -> Contexted (PrimWithName name prim) wY -> RepoPatchV3 name prim wX wY Source #