let rec addl = function
  | [] -> mk_zero
  | [i] -> i
  | [i; j] -> add i j
  | i :: il -> add i (addl il)