let of_list pl =
  List.fold_right
    (fun (y, n) ->
       mk_mult (mk_expt n y))
    pl
    mk_one