# Documentation

listToMaybe :: [a] -> Maybe a

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]

The `maybeToList`

function returns an empty list when given
`Nothing`

or a singleton list when not given `Nothing`

.

data Maybe a

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.