instances of Eq2, Ord2, Read2 and Show2
authorRoss Paterson <ross@soi.city.ac.uk>
Wed, 25 Mar 2015 21:44:56 +0000 (21:44 +0000)
committerRoss Paterson <ross@soi.city.ac.uk>
Wed, 25 Mar 2015 21:44:56 +0000 (21:44 +0000)
Data/Functor/Classes.hs
Data/Functor/Constant.hs

index 1123143..c734fc0 100644 (file)
@@ -272,18 +272,27 @@ instance Read1 Identity where
 instance Show1 Identity where
     showsPrecWith sp d (Identity x) = showsUnaryWith sp "Identity" d x
 
-instance (Eq a) => Eq1 (Const a) where
-    eqWith _ (Const x) (Const y) = x == y
+instance Eq2 Const where
+    eqWith2 eq _ (Const x) (Const y) = eq x y
 
-instance (Ord a) => Ord1 (Const a) where
-    compareWith _ (Const x) (Const y) = compare x y
+instance Ord2 Const where
+    compareWith2 comp _ (Const x) (Const y) = comp x y
 
-instance (Read a) => Read1 (Const a) where
-    readsPrecWith _ = readsData $
-         readsUnaryWith readsPrec "Const" Const
+instance Read2 Const where
+    readsPrecWith2 rp _ = readsData $
+         readsUnaryWith rp "Const" Const
 
+instance Show2 Const where
+    showsPrecWith2 sp _ d (Const x) = showsUnaryWith sp "Const" d x
+
+instance (Eq a) => Eq1 (Const a) where
+    eqWith = eqWith2 (==)
+instance (Ord a) => Ord1 (Const a) where
+    compareWith = compareWith2 compare
+instance (Read a) => Read1 (Const a) where
+    readsPrecWith = readsPrecWith2 readsPrec
 instance (Show a) => Show1 (Const a) where
-    showsPrecWith _ d (Const x) = showsUnaryWith showsPrec "Const" d x
+    showsPrecWith = showsPrecWith2 showsPrec
 
 -- Building blocks
 
index aaea088..f3776d6 100644 (file)
@@ -42,18 +42,27 @@ instance (Show a) => Show (Constant a b) where
 
 -- Instances of lifted Prelude classes
 
-instance (Eq a) => Eq1 (Constant a) where
-    eqWith _ (Constant x) (Constant y) = x == y
+instance Eq2 Constant where
+    eqWith2 eq _ (Constant x) (Constant y) = eq x y
 
-instance (Ord a) => Ord1 (Constant a) where
-    compareWith _ (Constant x) (Constant y) = compare x y
+instance Ord2 Constant where
+    compareWith2 comp _ (Constant x) (Constant y) = comp x y 
 
-instance (Read a) => Read1 (Constant a) where
-    readsPrecWith _ = readsData $
-         readsUnaryWith readsPrec "Constant" Constant
+instance Read2 Constant where
+    readsPrecWith2 rp _ = readsData $
+         readsUnaryWith rp "Constant" Constant
 
+instance Show2 Constant where
+    showsPrecWith2 sp _ d (Constant x) = showsUnaryWith sp "Constant" d x
+
+instance (Eq a) => Eq1 (Constant a) where
+    eqWith = eqWith2 (==)
+instance (Ord a) => Ord1 (Constant a) where
+    compareWith = compareWith2 compare
+instance (Read a) => Read1 (Constant a) where
+    readsPrecWith = readsPrecWith2 readsPrec
 instance (Show a) => Show1 (Constant a) where
-    showsPrecWith _ d (Constant x) = showsUnaryWith showsPrec "Constant" d x
+    showsPrecWith = showsPrecWith2 showsPrec
 
 instance Functor (Constant a) where
     fmap _ (Constant x) = Constant x