pair a b ::= Pair a b; list a ::= Nil | Cons a (list a); ;; pairid p = case p of Pair a b -> Pair a b end; lid a = case a of Nil -> Nil; Cons x xs -> Cons x xs end; magic p = case p of Pair as bs -> Pair (lid as) (lid bs) end; baad p = pairid (magic p);