Add `{-# MINIMAL #-}` to `class Eq` and `class Ord`
authorHerbert Valerio Riedel <hvr@gnu.org>
Wed, 18 Sep 2013 06:06:13 +0000 (08:06 +0200)
committerHerbert Valerio Riedel <hvr@gnu.org>
Wed, 18 Sep 2013 06:09:30 +0000 (08:09 +0200)
This makes use of the new compiler checked minimal-complete-defintion
`{-# MINIMAL #-}` annotation (see #7633 for more details)

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
libraries/ghc-prim/GHC/Classes.hs

index 4f456db..cf95cf8 100644 (file)
@@ -48,6 +48,7 @@ class  Eq a  where
     {-# INLINE (==) #-}
     x /= y               = not (x == y)
     x == y               = not (x /= y)
+    {-# MINIMAL (==) | (/=) #-}
 
 deriving instance Eq ()
 deriving instance (Eq  a, Eq  b) => Eq  (a, b)
@@ -145,6 +146,7 @@ class  (Eq a) => Ord a  where
         -- because the latter is often more expensive
     max x y = if x <= y then y else x
     min x y = if x <= y then x else y
+    {-# MINIMAL compare | (<=) #-}
 
 deriving instance Ord ()
 deriving instance (Ord a, Ord b) => Ord (a, b)