X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FMaybe.hs;h=2f98c70e6eee655405db49719c330f2db790eb25;hb=HEAD;hp=0e8bef572ea0f17cf4317719fd49f472d6b2c3b1;hpb=fde71f72181bed62ed528e789d6cb0366e478b0b;p=ghc-base.git diff --git a/Data/Maybe.hs b/Data/Maybe.hs index 0e8bef5..2f98c70 100644 --- a/Data/Maybe.hs +++ b/Data/Maybe.hs @@ -1,4 +1,5 @@ -{-# OPTIONS_GHC -fno-implicit-prelude #-} +{-# LANGUAGE CPP, NoImplicitPrelude, DeriveGeneric #-} + ----------------------------------------------------------------------------- -- | -- Module : Data.Maybe @@ -16,23 +17,23 @@ module Data.Maybe ( Maybe(Nothing,Just)-- instance of: Eq, Ord, Show, Read, - -- Functor, Monad, MonadPlus + -- Functor, Monad, MonadPlus - , maybe -- :: b -> (a -> b) -> Maybe a -> b + , maybe -- :: b -> (a -> b) -> Maybe a -> b - , isJust -- :: Maybe a -> Bool - , isNothing -- :: Maybe a -> Bool - , fromJust -- :: Maybe a -> a - , fromMaybe -- :: a -> Maybe a -> a + , isJust -- :: Maybe a -> Bool + , isNothing -- :: Maybe a -> Bool + , fromJust -- :: Maybe a -> a + , fromMaybe -- :: a -> Maybe a -> a , listToMaybe -- :: [a] -> Maybe a - , maybeToList -- :: Maybe a -> [a] - , catMaybes -- :: [Maybe a] -> [a] - , mapMaybe -- :: (a -> Maybe b) -> [a] -> [b] + , maybeToList -- :: Maybe a -> [a] + , catMaybes -- :: [Maybe a] -> [a] + , mapMaybe -- :: (a -> Maybe b) -> [a] -> [b] ) where #ifdef __GLASGOW_HASKELL__ -import {-# SOURCE #-} GHC.Err ( error ) import GHC.Base +import GHC.Generics (Generic) #endif #ifdef __NHC__ @@ -44,7 +45,7 @@ import Maybe , fromJust , fromMaybe , listToMaybe - , maybeToList + , maybeToList , catMaybes , mapMaybe ) @@ -64,8 +65,8 @@ import Maybe -- monad, where all errors are represented by 'Nothing'. A richer -- error monad can be built using the 'Data.Either.Either' type. -data Maybe a = Nothing | Just a - deriving (Eq, Ord) +data Maybe a = Nothing | Just a + deriving (Eq, Ord, Generic) instance Functor Maybe where fmap _ Nothing = Nothing @@ -79,7 +80,7 @@ instance Monad Maybe where Nothing >> _ = Nothing return = Just - fail _ = Nothing + fail _ = Nothing -- --------------------------------------------------------------------------- -- Functions over Maybe