Task: Catch Throwable, not just Exception
add eitherTPlus, eitherTMonadPlus. fix EitherT#filter, EitherT#withFilter

https://groups.google.com/d/msg/scalaz/NCiRRxLjanM/zArkn18vScgJ
https://github.com/ekmett/either/blob/v4.0/src/Control/Monad/Trans/Either.hs#L147-L163
EitherTTest
IList; safe, invariant cons list
operator tests; right-assoc append fix
add Cofree instances
CofreeTest
removed Each instance
remove unused type parameter
optimize OneOr instances
remove unnecessary constraint

https://github.com/ekmett/profunctors/blob/v4.0.1/src/Data/Profunctor.hs#L89-L90
add more instances for Value, Name, Need
add explicit return type annotations
Iso3#unlift, unlift1, unlift2 and Iso2#unlift
use unlift
Removes an unused type parameter from Nondeterminism aggregate calls.

Allow monoid instance for Nondeterminism aggregate calls to be implicit.
improved collectFirst, removed obsolete comment
optimize Foldable and Foldable1 methods.

use uncurried methods for avoid allocate `Function1` objects.
override maximum/minimum friends for efficiency
reuse objects