Monad by Marcos Benevides

:ID: a3e972e0-8db9-4556-9dca-0e4f6a663236

Haskell

In Haskell, monads are defined as:

    class Monad m where
        (>>=)  :: m a -> (  a -> m b) -> m b
        (>>)   :: m a ->  m b         -> m b
        return ::   a                 -> m a
Name Handles Signature
Result Errors Either e a -> (a -> Either e b) -> Either e b
Maybe Absent values Maybe a -> (a -> Maybe b) -> Maybe b
IO Pure/Impure separation IO a -> (a -> IO b) -> IO b
State Monadic State State a -> (a -> State b) -> State b
Reader Environment Data Reader a -> (a -> Reader b) -> Reader b
Writer Writer-Only Data Writer a -> (a -> Writer b) -> Writer b
Parser Composing Parsers Parser a -> (a -> Parser b) -> Parser b

Links to this note