Module Bastet__Tuple

val first : ('a * 'b) -> 'a
val second : ('a * 'b) -> 'b
val swap : 'a -> 'b -> 'b * 'a
val curry : (('a * 'b) -> 'c) -> 'a -> 'b -> 'c
val uncurry : ('a -> 'b -> 'c) -> ('a * 'b) -> 'c
module type MAGMA_F = functor (First : Bastet.Interface.MAGMA) -> functor (Second : Bastet.Interface.MAGMA) -> Bastet.Interface.MAGMA with type t = First.t * Second.t
module type SEMIGROUP_F = functor (First : Bastet.Interface.SEMIGROUP) -> functor (Second : Bastet.Interface.SEMIGROUP) -> Bastet.Interface.SEMIGROUP with type t = First.t * Second.t
module type MONOID_F = functor (First : Bastet.Interface.MONOID) -> functor (Second : Bastet.Interface.MONOID) -> Bastet.Interface.MONOID with type t = First.t * Second.t
module type FUNCTOR_F = functor (T : Bastet.Interface.TYPE) -> Bastet.Interface.FUNCTOR with type 'a t = T.t * 'a
module type APPLY_F = functor (S : Bastet.Interface.SEMIGROUP) -> Bastet.Interface.APPLY with type 'a t = S.t * 'a
module type APPLICATIVE_F = functor (M : Bastet.Interface.MONOID) -> Bastet.Interface.APPLICATIVE with type 'a t = M.t * 'a
module type MONAD_F = functor (M : Bastet.Interface.MONOID) -> Bastet.Interface.MONAD with type 'a t = M.t * 'a
module type FOLDABLE_F = functor (T : Bastet.Interface.TYPE) -> Bastet.Interface.FOLDABLE with type 'a t = T.t * 'a
module type EQ_F = functor (First : Bastet.Interface.EQ) -> functor (Second : Bastet.Interface.EQ) -> Bastet.Interface.EQ with type t = First.t * Second.t
module type SHOW_F = functor (First : Bastet.Interface.SHOW) -> functor (Second : Bastet.Interface.SHOW) -> Bastet.Interface.SHOW with type t = First.t * Second.t
module type TRAVERSABLE_F = functor (T : Bastet.Interface.TYPE) -> functor (A : Bastet.Interface.APPLICATIVE) -> Bastet.Interface.TRAVERSABLE with type 'a t = T.t * 'a and type 'a applicative_t = 'a A.t
module Magma : MAGMA_F
module Semigroup : SEMIGROUP_F
module Monoid : MONOID_F
module Functor : FUNCTOR_F
module Apply : APPLY_F
module Applicative : APPLICATIVE_F
module Monad : MONAD_F
module Foldable : FOLDABLE_F
module Traversable : TRAVERSABLE_F
module Eq : EQ_F
module Semigroupoid : Bastet.Interface.SEMIGROUPOID with type ('a, 'b) t = 'a * 'b
module Show : SHOW_F
module Bifunctor : Bastet.Interface.BIFUNCTOR with type ('a, 'b) t = 'a * 'b
module Biapply : Bastet.Interface.BIAPPLY with type ('a, 'b) t = 'a * 'b
module Biapplicative : Bastet.Interface.BIAPPLICATIVE with type ('a, 'b) t = 'a * 'b
module Bifoldable : Bastet.Interface.BIFOLDABLE with type ('a, 'b) t = 'a * 'b
module type BITRAVERSABLE_F = functor (A : Bastet.Interface.APPLICATIVE) -> Bastet.Interface.BITRAVERSABLE with type 'a applicative_t = 'a A.t and type ('a, 'b) t = 'a * 'b
module Bitraversable : BITRAVERSABLE_F
module Infix : sig ... end