[Haskell-cafe] Formalisation for types of monads