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