Module type Applicative.S2

module type S2 = sig .. end

type ('_, '_) t 
include Applicative.Basic2
include Functor.S2
val ap' : ('p, 'a -> 'b) t ->
('p, 'a) t -> ('p, 'b) t
val (<*>) : ('p, 'a -> 'b) t ->
('p, 'a) t -> ('p, 'b) t
val (<~>) : ('p, 'a -> 'b) t ->
(unit -> ('p, 'a) t) -> ('p, 'b) t
val discard_left : ('p, 'a) t ->
(unit -> ('p, 'b) t) -> ('p, 'b) t
val discard_right : ('p, 'a) t ->
(unit -> ('p, 'b) t) -> ('p, 'a) t
val repeat : int -> ('p, 'a) t -> ('p, 'a list) t
val repeat_ : int -> ('p, 'a) t -> ('p, unit) t
val forever : ('p, 'a) t -> ('p, 'b) t