Contravariant composition, such as with Functor.
Foldable products deriving 1-ness from only one side.
Typo in ProductFoldable1L.
Traverse products deriving 1-ness from only one side.
Typo.
Missed A=>B steps.
Use foldMap1Opt instead.
Also use *opt variants for directional folds.
Missed type params; apply2 not apply.
Silly overrides.
override Foldable1#empty
add check-gen-type-classes Task
Merge pull request #441 from xuwei-k/foldable1-empty

override Foldable1#empty
alias functions should be final
ListT#headOption should be OptionT

This is a breaking change to the API, but it makes it more consistent with similar methods on other monad transformers, such as EitherT#toOption or OptionT#toLeft.

Also, it will break old code in a very obvious way with a compile error that can be fixed by adding a `.run`.
fix #440. add NonEmptyList#foreach
Change EitherT from a sealed trait to a final case class
ListT should be final instead of sealed

Extending a case class is generally troublesome, and we aren't trying to anyway.
Change UnwriterT from sealed trait to final case class
Change WriterT from sealed trait to final case class