module type Args = Base__.Applicative_intf.Argsmodule type Args2 = Base__.Applicative_intf.Args2module type Basic = Base__.Applicative_intf.Basicmodule type Basic2 = Base__.Applicative_intf.Basic2module type Basic2_using_map2 = Base__.Applicative_intf.Basic2_using_map2module type Basic_using_map2 = Base__.Applicative_intf.Basic_using_map2module type S = Base__.Applicative_intf.Smodule type S2 = Base__.Applicative_intf.S2module Args_to_Args2 = Base__.Applicative_intf.Args_to_Args2module S2_to_S = Base__.Applicative_intf.S2_to_Smodule S_to_S2 = Base__.Applicative_intf.S_to_S2module Make_using_map2 : functor (X : Basic_using_map2) -> S with type a t := a X.tmodule Make2_using_map2 : functor (X : Basic2_using_map2) -> S2 with type (a, e) t := (a, e) X.tThe following functors give a sense of what Applicatives one can define.
Of these, Of_monad is likely the most useful. The others are mostly didactic.