From: Jose Pedro Magalhaes Date: Wed, 4 May 2011 09:18:46 +0000 (+0200) Subject: Add Representable0 instances to Either and Maybe. X-Git-Url: http://git.megacz.com/?p=ghc-base.git;a=commitdiff_plain;h=9d3a29e4b8feff1387fc26d3d6431356e1c74d51 Add Representable0 instances to Either and Maybe. --- diff --git a/Data/Either.hs b/Data/Either.hs index b45609b..0c72f97 100644 --- a/Data/Either.hs +++ b/Data/Either.hs @@ -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@; diff --git a/Data/Maybe.hs b/Data/Maybe.hs index b96efa7..e6039f2 100644 --- a/Data/Maybe.hs +++ b/Data/Maybe.hs @@ -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