モナドとは、エンドファンクタのカテゴリーにおけるモノイドにすぎない。Haskellは、多相的な静的型付けを持つ、遅延型の純粋関数型プログラミング言語である。

Haskellにおけるモナドは、ファンクターであるApplicativeであるMonadクラスと関連付けられることが多い。モナドは、同一性関数を実装したり、ヌルに頼ることなくエラーチェックを可能にしたり、関数型パラダイム内で状態を維持したりするために使われる。
A monad is just a monoid in the category of endofunctors. Haskell is a polymorphically statically typed, lazy, purely functional programming language.

A monad in Haskell is often associated with the Monad class, which is an Applicative, which is a Functor. Monads might be used to implement an identity function, to allow error checking without resorting to nulls, or maintain state within a functional paradigm.