Module Verify.Compare
Provides functors to verify that instances are lawful.
module Medial_Magma : functor (M : Interface.MEDIAL_MAGMA) -> functor (E : Interface.EQ with type t = M.t) -> sig ... endmodule Semigroup : functor (S : Interface.SEMIGROUP) -> functor (E : Interface.EQ with type t = S.t) -> sig ... endmodule Semigroup_Any : functor (S : Interface.SEMIGROUP_ANY) -> functor (E : Interface.EQ1 with type 'a t = 'a S.t) -> sig ... endmodule Monoid : functor (M : Interface.MONOID) -> functor (E : Interface.EQ with type t = M.t) -> sig ... endmodule Monoid_Any : functor (M : Interface.MONOID_ANY) -> functor (E : Interface.EQ1 with type 'a t = 'a M.t) -> sig ... endmodule Quasigroup : functor (Q : Interface.QUASIGROUP) -> functor (E : Interface.EQ with type t = Q.t) -> sig ... endmodule Quasigroup_Any : functor (Q : Interface.QUASIGROUP_ANY) -> functor (E : Interface.EQ1 with type 'a t = 'a Q.t) -> sig ... endmodule Medial_Quasigroup : functor (Q : Interface.MEDIAL_QUASIGROUP) -> functor (E : Interface.EQ with type t = Q.t) -> sig ... endmodule Loop : functor (L : Interface.LOOP) -> functor (E : Interface.EQ with type t = L.t) -> sig ... endmodule Loop_Any : functor (L : Interface.LOOP_ANY) -> functor (E : Interface.EQ1 with type 'a t = 'a L.t) -> sig ... endmodule Group : functor (G : Interface.GROUP) -> functor (E : Interface.EQ with type t = G.t) -> sig ... endmodule Group_Any : functor (G : Interface.GROUP_ANY) -> functor (E : Interface.EQ1 with type 'a t = 'a G.t) -> sig ... endmodule Abelian_Group : functor (A : Interface.ABELIAN_GROUP) -> functor (E : Interface.EQ with type t = A.t) -> sig ... endmodule Abelian_Group_Any : functor (A : Interface.ABELIAN_GROUP_ANY) -> functor (E : Interface.EQ1 with type 'a t = 'a A.t) -> sig ... endmodule Functor : functor (F : Interface.FUNCTOR) -> functor (E : Interface.EQ1 with type 'a t = 'a F.t) -> sig ... endmodule Apply : functor (A : Interface.APPLY) -> functor (E : Interface.EQ1 with type 'a t = 'a A.t) -> sig ... endmodule Applicative : functor (A : Interface.APPLICATIVE) -> functor (E : Interface.EQ1 with type 'a t = 'a A.t) -> sig ... endmodule Monad : functor (M : Interface.MONAD) -> functor (E : Interface.EQ1 with type 'a t = 'a M.t) -> sig ... endmodule Alt : functor (A : Interface.ALT) -> functor (E : Interface.EQ1 with type 'a t = 'a A.t) -> sig ... endmodule Plus : functor (P : Interface.PLUS) -> functor (E : Interface.EQ1 with type 'a t = 'a P.t) -> sig ... endmodule Alternative : functor (A : Interface.ALTERNATIVE) -> functor (E : Interface.EQ1 with type 'a t = 'a A.t) -> sig ... endmodule Semigroupoid : functor (S : Interface.SEMIGROUPOID) -> functor (E : Interface.EQ2 with type ('a, 'b) t = ('a, 'b) S.t) -> sig ... endmodule Category : functor (C : Interface.CATEGORY) -> functor (E : Interface.EQ2 with type ('a, 'b) t = ('a, 'b) C.t) -> sig ... endmodule Eq : functor (E : Interface.EQ) -> sig ... endmodule Quasireflexive_Eq : functor (E : Interface.QUASIREFLEXIVE_EQ) -> sig ... endmodule Ord : functor (E : Interface.ORD) -> sig ... endmodule Bounded : functor (B : Interface.BOUNDED) -> sig ... endmodule Join_Semilattice : functor (J : Interface.JOIN_SEMILATTICE) -> functor (E : Interface.EQ with type t = J.t) -> sig ... endmodule Meet_Semilattice : functor (M : Interface.MEET_SEMILATTICE) -> functor (E : Interface.EQ with type t = M.t) -> sig ... endmodule Bounded_Join_Semilattice : functor (B : Interface.BOUNDED_JOIN_SEMILATTICE) -> functor (E : Interface.EQ with type t = B.t) -> sig ... endmodule Bounded_Meet_Semilattice : functor (B : Interface.BOUNDED_MEET_SEMILATTICE) -> functor (E : Interface.EQ with type t = B.t) -> sig ... endmodule Lattice : functor (L : Interface.LATTICE) -> functor (E : Interface.EQ with type t = L.t) -> sig ... endmodule Bounded_Lattice : functor (L : Interface.BOUNDED_LATTICE) -> functor (E : Interface.EQ with type t = L.t) -> sig ... endmodule Distributive_Lattice : functor (L : Interface.DISTRIBUTIVE_LATTICE) -> functor (E : Interface.EQ with type t = L.t) -> sig ... endmodule Bounded_Distributive_Lattice : functor (L : Interface.BOUNDED_DISTRIBUTIVE_LATTICE) -> functor (E : Interface.EQ with type t = L.t) -> sig ... endmodule Heyting_Algebra : functor (H : Interface.HEYTING_ALGEBRA) -> functor (E : Interface.EQ with type t = H.t) -> sig ... endmodule Involutive_Heyting_Algebra : functor (H : Interface.HEYTING_ALGEBRA) -> functor (E : Interface.EQ with type t = H.t) -> sig ... endmodule Boolean_Algebra : functor (B : Interface.BOOLEAN_ALGEBRA) -> functor (E : Interface.EQ with type t = B.t) -> sig ... endmodule Semiring : functor (S : Interface.SEMIRING) -> functor (E : Interface.EQ with type t = S.t) -> sig ... endmodule Ring : functor (R : Interface.RING) -> functor (E : Interface.EQ with type t = R.t) -> sig ... endmodule Commutative_Ring : functor (R : Interface.COMMUTATIVE_RING) -> functor (E : Interface.EQ with type t = R.t) -> sig ... endmodule Division_Ring : functor (R : Interface.DIVISION_RING) -> functor (E : Interface.EQ with type t = R.t) -> sig ... endmodule Euclidean_Ring : functor (R : Interface.EUCLIDEAN_RING) -> functor (E : Interface.EQ with type t = R.t) -> sig ... endmodule Field : functor (F : Interface.FIELD) -> functor (E : Interface.EQ with type t = F.t) -> sig ... endmodule Invariant : functor (I : Interface.INVARIANT) -> functor (E : Interface.EQ1 with type 'a t = 'a I.t) -> sig ... endmodule Contravariant : functor (C : Interface.CONTRAVARIANT) -> functor (E : Interface.EQ1 with type 'a t = 'a C.t) -> sig ... endmodule Profunctor : functor (P : Interface.PROFUNCTOR) -> functor (E : Interface.EQ2 with type ('a, 'b) t = ('a, 'b) P.t) -> sig ... endmodule Monad_Zero : functor (M : Interface.MONAD_ZERO) -> functor (E : Interface.EQ1 with type 'a t = 'a M.t) -> sig ... endmodule Monad_Plus : functor (M : Interface.MONAD_PLUS) -> functor (E : Interface.EQ1 with type 'a t = 'a M.t) -> sig ... endmodule Extend : functor (X : Interface.EXTEND) -> functor (E : Interface.EQ1 with type 'a t = 'a X.t) -> sig ... endmodule Comonad : functor (C : Interface.COMONAD) -> functor (E : Interface.EQ1 with type 'a t = 'a C.t) -> sig ... endmodule Bifunctor : functor (B : Interface.BIFUNCTOR) -> functor (E : Interface.EQ2 with type ('a, 'b) t = ('a, 'b) B.t) -> sig ... endmodule Bicontravariant : functor (B : Interface.BICONTRAVARIANT) -> functor (E : Interface.EQ2 with type ('a, 'b) t = ('a, 'b) B.t) -> sig ... end