Add Representable0 instances to Either and Maybe.
authorJose Pedro Magalhaes <jpm@cs.uu.nl>
Wed, 4 May 2011 09:18:46 +0000 (11:18 +0200)
committerJose Pedro Magalhaes <jpm@cs.uu.nl>
Wed, 4 May 2011 09:18:46 +0000 (11:18 +0200)
Data/Either.hs
Data/Maybe.hs

index b45609b..0c72f97 100644 (file)
@@ -1,6 +1,6 @@
 {-# LANGUAGE CPP, NoImplicitPrelude #-}
 #ifdef __GLASGOW_HASKELL__
-{-# LANGUAGE DeriveDataTypeable, StandaloneDeriving #-}
+{-# LANGUAGE DeriveDataTypeable, DeriveRepresentable, StandaloneDeriving #-}
 #endif
 
 -----------------------------------------------------------------------------
@@ -34,6 +34,7 @@ import GHC.Read
 #endif
 
 import Data.Typeable
+import GHC.Generics (Representable0)
 
 #ifdef __GLASGOW_HASKELL__
 {-
@@ -51,7 +52,8 @@ either correct or an error; by convention, the 'Left' constructor is
 used to hold an error value and the 'Right' constructor is used to
 hold a correct value (mnemonic: \"right\" also means \"correct\").
 -}
-data  Either a b  =  Left a | Right b   deriving (Eq, Ord, Read, Show)
+data  Either a b  =  Left a | Right b
+  deriving (Eq, Ord, Read, Show, Representable0)
 
 -- | Case analysis for the 'Either' type.
 -- If the value is @'Left' a@, apply the first function to @a@;
index b96efa7..e6039f2 100644 (file)
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP, NoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, DeriveRepresentable #-}
 
 -----------------------------------------------------------------------------
 -- |
@@ -33,6 +33,7 @@ module Data.Maybe
 
 #ifdef __GLASGOW_HASKELL__
 import GHC.Base
+import GHC.Generics (Representable0)
 #endif
 
 #ifdef __NHC__
@@ -65,7 +66,7 @@ import Maybe
 -- error monad can be built using the 'Data.Either.Either' type.
 
 data  Maybe a  =  Nothing | Just a
-  deriving (Eq, Ord)
+  deriving (Eq, Ord, Representable0)
 
 instance  Functor Maybe  where
     fmap _ Nothing       = Nothing