sig
  val lexicographic :
    (X.t -> X.t -> bool) -> Monoid.Free.t -> Monoid.Free.t -> bool
  val deglex : (X.t -> X.t -> bool) -> Monoid.Free.t -> Monoid.Free.t -> bool
end