# Prelude.Monad

return : Monad m => a -> m a

  For compatibility with Haskell. Note that monads are not free to
  define `return` and `pure` differently!

flatten : Monad m => m (m a) -> m a
default#join : Monad m => m (m a) -> m a
default#>>= : Monad m => m a -> (a -> m b) -> m b
interface Monad
  (>>=) : Monad m => m a -> (a -> m b) -> m b

    Also called `bind`.

    Fixity
      Left associative, precedence 5
  join : Monad m => m (m a) -> m a

    Also called `flatten` or mu