123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778openOrdersTactype'xcoq_Compare=|LT|EQ|GTmoduletypeMiniOrderedType=sigtypetvalcompare:t->t->tcoq_CompareendmoduletypeOrderedType=sigtypetvalcompare:t->t->tcoq_Comparevaleq_dec:t->t->boolendmoduleMOT_to_OT=functor(O:MiniOrderedType)->structtypet=O.t(** val compare : t -> t -> t coq_Compare **)letcompare=O.compare(** val eq_dec : t -> t -> bool **)leteq_decxy=matchcomparexywith|EQ->true|_->falseendmoduleOrderedTypeFacts=functor(O:OrderedType)->structmoduleTO=structtypet=O.tendmoduleIsTO=structendmoduleOrderTac=MakeOrderTac(TO)(IsTO)(** val eq_dec : O.t -> O.t -> bool **)leteq_dec=O.eq_dec(** val lt_dec : O.t -> O.t -> bool **)letlt_decxy=matchO.comparexywith|LT->true|_->false(** val eqb : O.t -> O.t -> bool **)leteqbxy=ifeq_decxythentrueelsefalseendmoduleKeyOrderedType=functor(O:OrderedType)->structmoduleMO=OrderedTypeFacts(O)end