Module Type TotalOrder := StrOrder <+ HasLe <+ LeIsLtEq <+ LtIsTotal.
Module Type UsualTotalOrder <: TotalOrder
:= UsualStrOrder <+ HasLe <+ LeIsLtEq <+ LtIsTotal.
Module Type TotalOrder' := TotalOrder <+ EqLtLeNotation.
Module Type UsualTotalOrder' := UsualTotalOrder <+ LtLeNotation.
(** * Conversions *)
(** From [compare] to [eqb], and then [eq_dec] *)
Module Compare2EqBool (Import O:DecStrOrder') <: HasEqBool O.
Definition eqb x y :=
match compare x y with Eq => true | _ => false end.

(* Specifications: *)
Lemma eqb_eq : forall x y, eqb x y = true <-> x==y.
End Compare2EqBool.