X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Data%2FEq%2FIndirect.hs;fp=Data%2FEq%2FIndirect.hs;h=a7aa8d19a1f053b9abbbc44b9c893a03c17d6ae9;hp=0000000000000000000000000000000000000000;hb=42aad5a1889cf99c7c26ae7573bcc888e840ae66;hpb=8de439e0d2869f46e926d3132f6b1113201460e5 diff --git a/Data/Eq/Indirect.hs b/Data/Eq/Indirect.hs new file mode 100644 index 0000000..a7aa8d1 --- /dev/null +++ b/Data/Eq/Indirect.hs @@ -0,0 +1,50 @@ +{-# LANGUAGE + FlexibleContexts + , TypeFamilies + , UnicodeSyntax + #-} +-- |FIXME: doc +module Data.Eq.Indirect + ( Eq'(..) + , (==:) + , (/=:) + , (≡:) + , (≢:) + , (≠:) + ) + where +import Prelude.Unicode + +infix 4 ==:{-, /=:, ≡:, ≢:, ≠:-} + +-- |FIXME: doc +class Eq (Unified α) ⇒ Eq' α where + -- |FIXME: doc + type Unified α + -- |FIXME: doc + unify ∷ α → Unified α + +-- |FIXME: doc +(==:) ∷ (Eq' α, Eq' β, Unified α ~ Unified β) ⇒ α → β → Bool +{-# INLINE (==:) #-} +(==:) = (∘ unify) ∘ (≡) ∘ unify + +-- |FIXME: doc +(/=:) ∷ (Eq' α, Eq' β, Unified α ~ Unified β) ⇒ α → β → Bool +{-# INLINE (/=:) #-} +(/=:) = ((¬) ∘) ∘ (==:) + +-- |FIXME: doc +(≡:) ∷ (Eq' α, Eq' β, Unified α ~ Unified β) ⇒ α → β → Bool +{-# INLINE CONLIKE (≡:) #-} +(≡:) = (==:) + +-- |FIXME: doc +(≢:) ∷ (Eq' α, Eq' β, Unified α ~ Unified β) ⇒ α → β → Bool +{-# INLINE CONLIKE (≢:) #-} +(≢:) = (/=:) + +-- |FIXME: doc +(≠:) ∷ (Eq' α, Eq' β, Unified α ~ Unified β) ⇒ α → β → Bool +{-# INLINE CONLIKE (≠:) #-} +(≠:) = (/=:)