The Maybe type encapsulates an optional value. A value of type
Maybe a either contains a value of type a (represented as Just a),
or it is empty (represented as 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 Either type.
Instances30Monad, Functor, MonadFix, MonadFail, Applicative, Foldable, …
Monad MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFunctor MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadFix MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FixMonadFail MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.Control.Monad.FailApplicative MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseFoldable MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.FoldableTraversable MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.TraversableAlternative MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadPlus MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseMonadZip MaybeDefined in base-4.20.2.0 · Control.Monad.ZipEq1 MaybeDefined in base-4.20.2.0 · Data.Functor.ClassesOrd1 MaybeDefined in base-4.20.2.0 · Data.Functor.ClassesRead1 MaybeDefined in base-4.20.2.0 · Data.Functor.ClassesShow1 MaybeDefined in base-4.20.2.0 · Data.Functor.ClassesGeneric1 MaybeDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsEq a => Eq (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.MaybeData a => Data (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.DataOrd a => Ord (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.MaybeRead a => Read (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.ReadShow a => Show (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.ShowGeneric (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSemigroup a => Semigroup (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseSemigroup a => Monoid (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseLift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup
Smay be turned into a monoid simply by adjoining an elementenot inSand defininge*e = eande*s = s = s*efor alls ∈ S."Since 4.11.0: constraint on inner
avalue generalised from Monoid to Semigroup.SingKind a => SingKind (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSingI 'NothingDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsSingI a2 => SingI ('Just a2)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericstype Rep (Maybe a) = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics"Maybe"
"GHC.Internal.Maybe"
"ghc-internal"
'False) (C1 ('MetaCons"Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))type Rep1 Maybe = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics"Maybe"
"GHC.Internal.Maybe"
"ghc-internal"
'False) (C1 ('MetaCons"Nothing"
'PrefixI 'False) U1 :+: C1 ('MetaCons"Just"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))type DemoteRep (Maybe a) = Maybe (DemoteRep a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Genericsdata SingDefined in ghc-internal-9.1003.0 · GHC.Internal.Generics