Open
Description
See Rust for example:
-- symmetric: a `eq` b == b `eq` a
-- transitive: a `eq` b == b `eq` c == a `eq` c
class PartialEq a where
eq :: a -> a -> Boolean
notEq :: forall a. PartialEq a => a -> a -> Boolean
notEq = not <<< eq
-- reflexive a `eq` a
class PartialEq a <= Eq a
-- pre order
class PartialEq <= PartialOrd a where
pcompare :: a -> a -> Maybe Ordering
lt :: a -> a -> Boolean
lte :: a -> a -> Boolean
gt :: a -> a -> Boolean
gte :: a -> a -> Boolean
-- total order
class (Eq a, PartialOrd a) <= Ord a where
compare :: a -> a -> Ordering
Metadata
Metadata
Assignees
Labels
No labels