blob: 1a92b92d53950e162293209ef42697f9a506b53d (
plain) (
tree)
|
|
sealed trait KList[+M[_]]
case class KCons[M[_], +T <: KList[M]](
tail: T
) extends KList[M]
case class KNil[M[_]]() extends KList[M]
object Test {
val klist: KCons[Option, KCons[Option, KCons[Option, KNil[Nothing]]]] = ???
// crashes with
// "Exception in thread "main" scala.reflect.internal.Types$TypeError: value _1 is not a member
// of KCons[Option,KCons[Option,KNil[Nothing]]]"
klist match {
case KCons(KCons(KCons(_))) =>
}
// fails with a similar message as an error, rather than a crash.
klist match {
case KCons(KCons(_)) =>
}
// succeeds
klist match {
case KCons(_) =>
}
}
|