let sigma op l = match op, l with | Cons, [a; b] -> mk_cons a b | Car, [a] -> mk_car a | Cdr, [b] -> mk_cdr b | _ -> Term.mk_app (Pair(op)) l