scalaz/scalaz — pull request #241 by pufuwozu (2013-01-04 01:40:18+00:00)
Title: Add Foldable1 and Traverse1

First pull request. Please review carefully.

This provides a better abstraction for when things are "non-empty" and
removes partial functions from Foldable and Traverse.

* Loosens Foldable1 to Semigroup (from Monoid)
* Loosens Traverse1 to Apply (from Applicative)
* Id has a Traverse1
* Product has a Traverse1
* NonEmptyList has a Traverse1
* Tree has a Traverse1

Traversable <---- Foldable
| |
v v
Traversable1 <--- Foldable1

See http://hackage.haskell.org/package/semigroupoids