[project @ 2005-11-29 14:31:59 by ross]
As foreshadowed on the libraries list, introduce new classes:
Applicative (formerly known as Idiom): generalizes (but does not replace)
both Monad and Monoid.
Traversable: containers that can be traversed, executing actions and
re-assembling the results. This class generalizes and replaces FunctorM,
because it requires Applicative instead of Monad.
Foldable: containers that can be folded over a Monoid. Traversable
supplies a default definition, but some structures, e.g. Set, are Foldable
but not Traversable.