Module Callback_arity

Callback_arity states the type of callbacks stored in a bus. Using Callback_arity is an implementation technique that allows callbacks to be defined as ordinary n-ary curried functions, instead of forcing n-ary-variadic callbacks to use tuples. This also avoids extra allocation.

When reading the bus interface, keep in mind that each 'callback is limited, through create, to the types exposed by the variants in Callback_arity.


type _ t =
| Arity1 : ('a -> unit) t
| Arity2 : ('a -> 'b -> unit) t
| Arity3 : ('a -> 'b -> 'c -> unit) t
| Arity4 : ('a -> 'b -> 'c -> 'd -> unit) t
val sexp_of_t : ('v_x__001_ -> Sexplib.Sexp.t) -> 'v_x__001_ t -> Sexplib.Sexp.t