scalaz/scalaz — pull request #328 by S11001001 (2013-04-10 02:58:37+00:00)
Title: Don't break SI-2066

Someday [SI-2066](https://issues.scala-lang.org/browse/SI-2066) may be fixed. We shouldn't assume it won't be.

This removes some instances of SI-2066 incompatibility.

However, the trickery to solve the variance issues revealed by `traverse` don't seem to apply to the `Hoist` and `Cohoist` instances; an attempt to solve this by making `MonadTrans` take a `F[_[+_], _]` eventually threatened to demand that `Monad` require variance again, making it highly distasteful; see S11001001@8d9c4c127294145eeb1256909992d3850b24844b.

What else can we do to satisfy the demand for variance when constructing transformer stacks?

(I believe `StateTLiftIO` and others like it are also unsound, but won't worry about that here.)