strict-0.3.2: Strict data types and String IO.

Copyright | (c) 2006-2007 Roman Leshchinskiy
License | BSD-style (see the file LICENSE)
Maintainer | Roman Leshchinskiy <rl@cse.unsw.edu.au>
Stability | experimental
Portability | portable
Safe Haskell | Safe-Inferred
Language | Haskell98

Data.Strict.Maybe

Description

Strict `Maybe`.

Same as the standard Haskell `Maybe`, but `Just _|_ = _|_`

Note that strict `Maybe` is not a monad since `return _|_ >>= f = _|_` which is not necessarily the same as `f _|_`.

Synopsis

- data Maybe a
  - = Nothing
  - | Just !a
- isJust :: Maybe a -> Bool
- isNothing :: Maybe a -> Bool
- fromJust :: Maybe a -> a
- fromMaybe :: a -> Maybe a -> a
- maybe :: b -> (a -> b) -> Maybe a -> b

# Documentation

data Maybe a

The type of strict optional values.

Constructors

Nothing |
Just !a |

Instances

Functor Maybe |
Eq a => Eq (Maybe a) |
Ord a => Ord (Maybe a) |
Read a => Read (Maybe a) |
Show a => Show (Maybe a) |

isJust :: Maybe a -> Bool

Yields `True` iff the argument is of the form `Just _`.

isNothing :: Maybe a -> Bool

Yields `True` iff the argument is `Nothing`.

fromJust :: Maybe a -> a

Extracts the element out of a `Just` and throws an error if the argument is `Nothing`.

fromMaybe :: a -> Maybe a -> a

Given a default value and a `Maybe`, yield the default value if the `Maybe` argument is `Nothing` and extract the value out of the `Just` otherwise.

maybe :: b -> (a -> b) -> Maybe a -> b

Given a default value, a function and a `Maybe` value, yields the default value if the `Maybe` value is `Nothing` and applies the function to the value stored in the `Just` otherwise.