
21 May
2012
21 May
'12
9:25 a.m.
When explaining monads to beginners (having an imperative background), I found myself to say that there is *roughly* three "groups" of monads (because they're always worried about their cost, i.e. their incidental complexity): - Function-oriented monads (e.g. State, Reader, Cont) - Reductible data-oriented monads (e.g. Maybe, Identity, Writer) - Irreductible data-oriented monads (e.g. List, free monads) (which, as I understood, have a (>>=) operation that has a quadratic complexity if not used properly) Are there others "groups" I'm missing and is there terms to formalize them?