| data Maybe a |
| = | Nothing | |
| | | Just a | |
The Maybe type encapsulates an optional value. A value of type Maybe a either contains a value of type a (represented as Just a), or it is empty (represented as Nothing). Using Maybe is a good way to deal with errors or exceptional cases without resorting to drastic measures such as error.
The Maybe type is also a monad. It is a simple kind of error monad, where all errors are represented by Nothing. A richer error monad can be built using the Data.Either.Either type.
| instance Monad Maybe |
| instance Functor Maybe |
| instance MonadPlus Maybe |
| instance Eq a => Eq (Maybe a) |
| instance Ord a => Ord (Maybe a) |
| instance Read a => Read (Maybe a) |
| instance Show a => Show (Maybe a) |
| maybe :: b -> (a -> b) -> Maybe a -> b |
| 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] |