let pp p fmt = function
| Cons, [a; b] ->
Pretty.apply p fmt ("cons", [a; b])
| Car, [a] ->
Pretty.apply p fmt ("car", [a])
| Cdr, [a] ->
Pretty.apply p fmt ("cdr", [a])
| _ ->
invalid_arg "Ill-formed application in product theory"