a monad is...
- a structure that represents computations defined as sequences of steps
- a parameterized type which is an instance of the Monad type class, which defines >>= along with a few other operators
- just a Monoid in the category of endofunctors
- not a burrito
- a structure that defines a way to combine (the results of) functions
- a construction that, given an underlying type system, embeds a corresponding type system (called the monadic type system) into it (that is, each monadic type acts as the underlying type)
- not a monster
- a way to wrap stuff, then operate on the wrapped stuff without unwrapping it
- a special kind of a functor
- a functor equipped with a pair of natural transformations satisfying the laws of associativity and identity
- are obviously an extremely important concept in Haskell
- a very simple, yet extremely powerful thing
- a monoid where you blend the “oi” into an “a”
- a type constructor with a unit and a binding operation enjoying unit and associativity properties
- a monster
- like a burrito
- like a writing desk
- not a burrito
- like a dildo factory, stuffed with midgets