scalaz/scalaz — pull request #348 by S11001001 (2013-04-29 20:50:19+00:00)
Title: OnePlus, a NonEmptyList generalization

This provides `OnePlus[F[_], A]`, where `OnePlus[List, A]` is isomorphic to `NonEmptyList[A]`. It provides several Id-and-F products, at least those that are consistent with `NonEmptyList`.

I noticed some interesting things, such as that the product of a `Traverse` and a `Traverse1` is really a `Traverse1`. These are implemented only for `OnePlus`, but might be interesting for general products.

Tests are included.