let rec sigma op l = match op, l with | Num(q), [] -> mk_num q | Add, [x; y] -> mk_add x y | Add, _ :: _ :: _ -> mk_addl l | Multq(q), [x] -> mk_multq q x | _ -> assert false