]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Data/Eq/Indirect.hs
Docs
[Lucu.git] / Data / Eq / Indirect.hs
index a7aa8d19a1f053b9abbbc44b9c893a03c17d6ae9..3c93da25502a03df8143b8fa11d1a9f8ca3838fa 100644 (file)
@@ -3,7 +3,7 @@
   , TypeFamilies
   , UnicodeSyntax
   #-}
--- |FIXME: doc
+-- |Indirect equality comparison.
 module Data.Eq.Indirect
     ( Eq'(..)
     , (==:)
@@ -15,13 +15,20 @@ module Data.Eq.Indirect
     where
 import Prelude.Unicode
 
-infix 4 ==:{-, /=:, ≡:, ≢:, ≠:-}
+infix 4 ==:, /=:, ≡:, ≢:, ≠:
 
--- |FIXME: doc
+-- |Type class for indirectly equality-comparable types. That is, any
+-- @α@ of @'Eq'' α@ has a monomorphism to some
+-- equality-comparable type @γ@ while @α@ itself isn't
+-- necessarily an instance of 'Eq'. This way we can generalise the
+-- '==' operator so that it can take two different types as long as
+-- they both have monomorphisms to the same 'Eq' type @γ@.
+--
+-- Minimal complete definition: 'Unified' and 'unify'.
 class Eq (Unified α) ⇒ Eq' α where
-    -- |FIXME: doc
+    -- |The said equality-comparable type @γ@.
     type Unified α
-    -- |FIXME: doc
+    -- |Monomorphism from @α@ to @γ@.
     unify ∷ α → Unified α
 
 -- |FIXME: doc