let sigma op l =
  match op, l with
    | Sym.Cons, [a; b] -> mk_cons a b
    | Sym.Car, [a] -> mk_car a
    | Sym.Cdr, [b] -> mk_cdr b 
    | _ -> assert false