import java.lang.String; import java.lang.Integer; sealed interface List permits LinkedElem, Elem {} public record LinkedElem(T a,List l) implements List{} public record Elem(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; }; } }