1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
enum List[+T] { case Cons(x: T, xs: List[T]) case Snoc[U](xs: List[U], x: U) // error: case with type parameters needs extends clause } enum class X { case Y // error: case not allowed here } enum E1[T] { case C } enum E2[+T, +U >: T] { case C } enum E3[-T <: Ordered[T]] { case C }