It seems that using type aliases confuses the Scala type inferencer or the compiler. Indeed trying to compile
import scalaz.OptionT.optionT
type Foo[A] = Option[Option[A]]
val x: Foo[Int] = Some(Some(3))
optionT(x)
results in the strange error
java.lang.IllegalArgumentException: transpose requires all collections have the same size
Due to my limited experience with Scala, I am not sure whether I should file a bug for this, ot if this is the expected behaviour.
Is this really a bug or the expected behaviour?
Having just tested that myself that IllegalArgumentException is the compiler bailing out, which would be a bug.