[project @ 2005-11-29 14:31:59 by ross]
authorross <unknown>
Tue, 29 Nov 2005 14:31:59 +0000 (14:31 +0000)
committerross <unknown>
Tue, 29 Nov 2005 14:31:59 +0000 (14:31 +0000)
commitc472d50485288057fc3029a34662e1e466400e8d
treea654915050c5ac56b08b3d1fee8bb5b32ed48006
parent01fe96ab14e4e7d3974e7245ee5fc2c04da6f46e
[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.
libraries/base/Control/Applicative.hs [new file with mode: 0644]
libraries/base/Data/Foldable.hs [new file with mode: 0644]
libraries/base/Data/IntMap.hs
libraries/base/Data/Map.hs
libraries/base/Data/Sequence.hs
libraries/base/Data/Set.hs
libraries/base/Data/Traversable.hs [new file with mode: 0644]
libraries/base/Data/Tree.hs
libraries/base/base.cabal
libraries/base/package.conf.in