let rec multl = function
  | [] -> mk_one
  | [i] -> i
  | [i; j] -> mult i j
  | i :: il -> mult i (multl il)