Returns Just the given value if the conditional is True
and Nothing if the conditional is False.
Returns Nothing when applied to neutral, and Just the value otherwise.
Convert a Maybe a value to an a value, using neutral in the case
that the Maybe value is Nothing.
Convert a Maybe a value to an a value by providing a default a value
in the case that the Maybe value is Nothing.
Transform any semigroup into a monoid by using Nothing as the
designated neutral element and collecting the contents of the
Just constructors using a semigroup structure on a. This is
the behaviour in the Haskell libraries.
Proof that some Maybe is actually Just