type t List = 'EOL | 'Cons {head: t, tail: t List} type List2 = with t: 'EOL | 'Cons {head: t, tail: t List} type List3 = with t: &a 'EOL | 'Cons {head: t, tail: a} type List4 = with t: &a 'EOL Unit | 'Cons {head: t, tail: a}