package bastet

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Provides functors to verify that instances are lawful.

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