strict-0.2: Strict data types

Portabilityportable
Stabilityexperimental
MaintainerRoman Leshchinskiy <rl@cse.unsw.edu.au>

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

Documentation

data Maybe a Source

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 -> BoolSource

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

isNothing :: Maybe a -> BoolSource

Yields True iff the argument is Nothing.

fromJust :: Maybe a -> aSource

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

fromMaybe :: a -> Maybe a -> aSource

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 -> bSource

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.