A monad is a lax monoidal endofunctor. It consists of a triple, a natural transformation 1 -> T and T
2 -> T and a functor C -> C. In haskell this is return (1c -> T), join (T
2 -> T) and fmap (C -> C).
>>3
Talks shit.
Not all monads can be 'combined' at least not in the way he suggests. You can take the Sum or Product of two functors. These behave as a monad again. These basic laws means that the categorical diagram of monad commute. Nothing more than that. Try combine the ST monad transformer with a non deterministic monad.
A functor is a comparator between two categories. It is the logic generalization of a function, which is a comparator between objects.
A morphism is a comparator between two functors. Also called natural transformations.