sig
  type polynomial =
      Var of string
    | Const of float
    | Times of Poly.polynomial * Poly.polynomial
    | Plus of Poly.polynomial * Poly.polynomial
  val str : Poly.polynomial -> string
  val pow : Poly.polynomial -> int -> Poly.polynomial
  val simp_const : Poly.polynomial -> Poly.polynomial
  val make_unordered : OrderedPoly.polynomial -> Poly.polynomial
  val make_unordered_pair_list :
    (OrderedPoly.polynomial * 'a) list -> (Poly.polynomial * 'a) list
  val vars : Poly.polynomial -> string list
  val vars_list : Poly.polynomial list -> string list
  val make_ordered :
    ?use_num:bool -> string list -> Poly.polynomial -> OrderedPoly.polynomial
  val make_ordered_list :
    string list -> Poly.polynomial list -> OrderedPoly.polynomial list
  val make_ordered_pair_list :
    string list ->
    (Poly.polynomial * 'a) list -> (OrderedPoly.polynomial * 'a) list
end