blob: 44554c59c724b43d9ba623f7106dc189343d9d10 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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(_) =>
}
}
|