import java.lang.String; import java.lang.Integer; sealed interface List permits LinkedElem, Elem {} public record LinkedElem<T>(T a,List l) implements List{} public record Elem<T>(T c) implements List{} public class GenericRecordSwitchCase { public main(o) { return switch(o) { case LinkedElem(a, Elem(e)) -> a ; case LinkedElem(a, LinkedElem(e, Elem(f))) -> a; }; } }