Darcs.Witnesses.Eq
Documentation
EqCheck is used to pass around evidence (or lack thereof) of
two witness types being equal.
An witness aware equality class.
A minimal definition defines any one of unsafeCompare, =\/= and =/\=.
Methods
unsafeCompare :: p a b -> p c d -> BoolSource
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 a b -> p a c -> EqCheck b cSource
Compare two things with the same starting witness. If the things compare equal, evidence of the ending witnesses being equal will be returned.
(=/\=) :: p a c -> p b c -> EqCheck a bSource
Compare two things with the same ending witness. If the things compare equal, evidence of the starting witnesses being equal will be returned.
Instances
| MyEq DummyPatch | |
| MyEq WPatchInfo | |
| MyEq DirPatchType | |
| MyEq FilePatchType | |
| MyEq Prim | |
| (MyEq p, Commute p) => MyEq (RL p) | |
| (MyEq p, Commute p) => MyEq (FL p) | |
| MyEq prim => MyEq (Patch prim) | |
| (Commute p, MyEq p) => MyEq (Named p) | |
| MyEq p => MyEq (PatchChoice p) | |
| MyEq p => MyEq (TaggedPatch p) | |
| (Commute p, MyEq p) => MyEq (PatchInfoAnd p) | |
| PrimPatch prim => MyEq (RealPatch prim) | |
| (MyEq a, MyEq b) => MyEq (:< a b) | |
| (MyEq a, MyEq b) => MyEq (:> a b) |