Legend:
Library
Module
Module type
Parameter
Class
Class type
Applying function to multiple streams.
This interface enables merging of arbitrary number of streams and processing them with a single function.
Example
let args = Stream.Variadic.(begin
args input1 $input2 ... $inputN
end)
let output =
Stream.Variadic.apply args ~f:(fun x1 x2 ... xN ->
(x1,x2,...,xN) (* or something more clever *))
where
`input1`, ..., `inputN` are streams of types `t1 stream`, ..., `tN stream`;
`output` is the merged stream of type `t1 * t2 * ... * tN`.
type('f, 'r) t
('f,'r) t is a list of arguments, where 'f defines the arrow type of the arguments, and 'r is the return type. C.f., 'f and 'r with the first and last parameter of the format type constructor.