Module Bastet.Dual
module type MAGMA_F = functor (M : Interface.MAGMA) -> Interface.MAGMA with type t = M.t dualmodule type SEMIGROUP_F = functor (S : Interface.SEMIGROUP) -> Interface.SEMIGROUP with type t = S.t dualmodule type MONOID_F = functor (M : Interface.MONOID) -> Interface.MONOID with type t = M.t dualmodule type MAGMA_ANY_F = functor (M : Interface.MAGMA_ANY) -> Interface.MAGMA_ANY with type 'a t = 'a M.t dualmodule type SEMIGROUP_ANY_F = functor (S : Interface.SEMIGROUP_ANY) -> Interface.SEMIGROUP_ANY with type 'a t = 'a S.t dualmodule type MONOID_ANY_F = functor (M : Interface.MONOID_ANY) -> Interface.MONOID_ANY with type 'a t = 'a M.t dualmodule type TRAVERSABLE_F = functor (A : Interface.APPLICATIVE) -> Interface.TRAVERSABLE with type 'a t = 'a dual and type 'a applicative_t = 'a A.tmodule Semigroup : SEMIGROUP_Fmodule Functor : Interface.FUNCTOR with type 'a t = 'a dualmodule Applicative : Interface.APPLICATIVE with type 'a t = 'a dualmodule Monad : Interface.MONAD with type 'a t = 'a dualmodule Magma_Any : MAGMA_ANY_Fmodule Semigroup_Any : SEMIGROUP_ANY_Fmodule Monoid_Any : MONOID_ANY_Fmodule Foldable : Interface.FOLDABLE with type 'a t = 'a dualmodule Traversable : TRAVERSABLE_Fmodule Infix : sig ... end