Closed
Description
Noticed by accident that enum cases might extend the wrong enum. That is, Z
below is accepted and should probably be rejected. I also confirmed that Z
indeed extends Expr
and not Var
.
object GADTs2 {
enum Var[G, A] {
case Z[A, G] extends Expr[(A, G), A]
}
enum Expr[G, A] {
case Lit[G](n: Int) extends Expr[G, Int]
// case S[A, G](x:
}
}