Portability | portable |
---|---|

Stability | stable |

Maintainer | libraries@haskell.org |

The Maybe type, and associated operations.

# Documentation

The `Maybe`

type encapsulates an optional value. A value of type

either contains a value of type `Maybe`

a`a`

(represented as

),
or it is empty (represented as `Just`

a`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.

Monad Maybe | |

Functor Maybe | |

Typeable1 Maybe | |

MonadFix Maybe | |

MonadPlus Maybe | |

Applicative Maybe | |

Foldable Maybe | |

Traversable Maybe | |

Alternative Maybe | |

Eq a => Eq (Maybe a) | |

Data a => Data (Maybe a) | |

Ord a => Ord (Maybe a) | |

Read a => Read (Maybe a) | |

Show a => Show (Maybe a) | |

Monoid a => Monoid (Maybe a) | Lift a semigroup into |

listToMaybe :: [a] -> Maybe aSource

The `listToMaybe`

function returns `Nothing`

on an empty list
or

where `Just`

a`a`

is the first element of the list.

maybeToList :: Maybe a -> [a]Source

The `maybeToList`

function returns an empty list when given
`Nothing`

or a singleton list when not given `Nothing`

.