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