Module Base.Applicative

module type Applicative_infix = Base__Applicative_intf.Applicative_infix
module type Applicative_infix2 = Base__Applicative_intf.Applicative_infix2
module type Applicative_infix3 = Base__Applicative_intf.Applicative_infix3
module type Basic = Base__Applicative_intf.Basic
module type Basic2 = Base__Applicative_intf.Basic2
module type Basic3 = Base__Applicative_intf.Basic3
module type Basic_using_map2 = Base__Applicative_intf.Basic_using_map2
module type Basic2_using_map2 = Base__Applicative_intf.Basic2_using_map2
module type Basic3_using_map2 = Base__Applicative_intf.Basic3_using_map2
module type Let_syntax = Base__Applicative_intf.Let_syntax
module type Let_syntax2 = Base__Applicative_intf.Let_syntax2
module type Let_syntax3 = Base__Applicative_intf.Let_syntax3
module type S = Base__Applicative_intf.S
module type S2 = Base__Applicative_intf.S2
module type S3 = Base__Applicative_intf.S3
module S2_to_S : functor (X : S2) -> S with type 'a t = ('a, unit) X.t
module S_to_S2 : functor (X : S) -> S2 with type ('a, 'e) t = 'a X.t
module S3_to_S2 : functor (X : S3) -> S2 with type ('a, 'd) t = ('a'd, unit) X.t
module S2_to_S3 : functor (X : S2) -> S3 with type ('a, 'd, 'e) t = ('a'd) X.t
module Make : functor (X : Basic) -> S with type 'a t := 'a X.t
module Make2 : functor (X : Basic2) -> S2 with type ('a, 'e) t := ('a'e) X.t
module Make3 : functor (X : Basic3) -> S3 with type ('a, 'd, 'e) t := ('a'd'e) X.t
module Make_let_syntax : functor (X : sig ... end) -> functor (Intf : sig ... end) -> functor (Impl : Intf.S) -> Let_syntax with type 'a t := 'a X.t with module Open_on_rhs_intf := Intf
module Make_let_syntax2 : functor (X : sig ... end) -> functor (Intf : sig ... end) -> functor (Impl : Intf.S) -> Let_syntax2 with type ('a, 'e) t := ('a'e) X.t with module Open_on_rhs_intf := Intf
module Make_let_syntax3 : functor (X : sig ... end) -> functor (Intf : sig ... end) -> functor (Impl : Intf.S) -> Let_syntax3 with type ('a, 'd, 'e) t := ('a'd'e) X.t with module Open_on_rhs_intf := Intf
module Make_using_map2 : functor (X : Basic_using_map2) -> S with type 'a t := 'a X.t
module Make2_using_map2 : functor (X : Basic2_using_map2) -> S2 with type ('a, 'e) t := ('a'e) X.t
module Make3_using_map2 : functor (X : Basic3_using_map2) -> S3 with type ('a, 'd, 'e) t := ('a'd'e) X.t
module Of_monad : functor (M : Monad.S) -> S with type 'a t := 'a M.t

Every monad is Applicative via:

module Of_monad2 : functor (M : Monad.S2) -> S2 with type ('a, 'e) t := ('a'e) M.t
module Compose : functor (F : S) -> functor (G : S) -> S with type 'a t = 'a F.t G.t
module Pair : functor (F : S) -> functor (G : S) -> S with type 'a t = 'a F.t * 'a G.t