Module type Cstubs_applicative.Foreign_applicative

include FOREIGN
type 'a fn
type 'a return
val (@->) : 'a Ctypes.typ -> 'b fn -> ( 'a -> 'b ) fn
val returning : 'a Ctypes.typ -> 'a return fn
type 'a result
val foreign : string -> ( 'a -> 'b ) fn -> ( 'a -> 'b ) result
val foreign_value : string -> 'a Ctypes.typ -> 'a Ctypes.ptr result
include Applicative_with_let with type 'a t := 'a result
include Base.Applicative.S with type 'a t := 'a result
val return : 'a -> 'a result
val map : 'a result -> f:( 'a -> 'b ) -> 'b result
val both : 'a result -> 'b result -> ('a * 'b) result
val (<*>) : ( 'a -> 'b ) result -> 'a result -> 'b result
val (<*) : 'a result -> unit result -> 'a result
val (*>) : unit result -> 'a result -> 'a result
val (>>|) : 'a result -> ( 'a -> 'b ) -> 'b result
val apply : ( 'a -> 'b ) result -> 'a result -> 'b result
val map2 : 'a result -> 'b result -> f:( 'a -> 'b -> 'c ) -> 'c result
val map3 : 'a result -> 'b result -> 'c result -> f:( 'a -> 'b -> 'c -> 'd ) -> 'd result
val all : 'a result list -> 'a list result
val all_unit : unit result list -> unit result
module Applicative_infix : sig ... end
include Base.Applicative.Let_syntax with type 'a t := 'a result
module Open_on_rhs_intf : sig ... end
module Let_syntax : sig ... end
val map_return : 'a return -> f:( 'a -> 'b ) -> 'b return
val bind_return : 'a return -> f:( 'a -> 'b return ) -> 'b