Module type Applicative.S3

module type S3 = sig .. end

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