scalaz/scalaz — pull request #677 by S11001001 (2014-03-21 03:58:48+00:00)
Title: Contravariant coyoneda; move Coyoneda API around a bit

The main highlights are `ContravariantCoyoneda` and an example of its usage.

I've also changed `Coyoneda` a bit incompatibly; their APIs should match up. Main changes there:

* The old `Coyoneda.apply` is now called `lift`.
* `Coyoneda.apply` does everything now.
* Basic functions like `map` specify the existential in the result type.
* `Coyoneda` is now sealed; that's part of the "`apply` does everything" bit.

I haven't included instances for `ContravariantCoyoneda` other than the obvious one.