list a ::= Nil | Cons a (list a); ;; length l = case l of Nil -> 0; Cons x xs -> 1 + length xs end; lid x = case x of Nil -> x; Cons y ys -> x end; t = Cons not Nil; tt = lid t; f = length (lid tt);