Module Make.Compare

module Medial_Magma : functor (M : Interface.MEDIAL_MAGMA) -> functor (E : Interface.EQ with type t = M.t) -> functor (A : ARBITRARY with type t := M.t and type 'a arbitrary := 'a Q.arbitrary) -> sig ... end
module Quasigroup : functor (QG : Interface.QUASIGROUP) -> functor (E : Interface.EQ with type t = QG.t) -> functor (A : ARBITRARY with type t := QG.t and type 'a arbitrary := 'a Q.arbitrary) -> sig ... end
module Semiring : functor (S : Interface.SEMIRING) -> functor (E : Interface.EQ with type t = S.t) -> functor (A : ARBITRARY with type t := S.t and type 'a arbitrary := 'a Q.arbitrary) -> sig ... end
module Division_Ring : functor (D : Interface.DIVISION_RING) -> functor (E : Interface.EQ with type t = D.t) -> functor (A : ARBITRARY with type t := D.t and type 'a arbitrary := 'a Q.arbitrary) -> sig ... end
module Euclidean_Ring : functor (E : Interface.EUCLIDEAN_RING) -> functor (EQ : Interface.EQ with type t = E.t) -> functor (A : ARBITRARY with type t := E.t and type 'a arbitrary := 'a Q.arbitrary) -> sig ... end