Signature module type Monad = sig type 'a t val return : 'a -> 'a t val bind : 'a t -> ('a -> 'b t) -> 'b t end Haskell A design pattern used to handle program-wide concerns, such as state or I/O, in a pure functional way. Links OCaml Haskell Category Theory FP Promise