Legend:
Library
Module
Module type
Parameter
Class
Class type
Functional emitter/formatter combinators
Overview
In counterpart to
f_scan
, this module provides functional combinators for composing imperative emitters for various arbitrary output chanenls. Specializations are provided for
f_encode.emitter
, and the Buffer.t and Format.formatter types in the standard library.
Type
type('a, 'b) t =
| Fof'a->'b-> unit
Use ('a, 'b) t to represent an emitter on channels of type 'a for values of type 'b.
Use coded sch to make a emitter combinator for sch.
val pair : ?sep:('a, unit)t->('a, 'b)t->('a, 'c)t->('a, 'b * 'c)t
Use pair a b to make an emitter for pairs of values where a is the emitter for the first value and b is the emitter for the second. If ~sep is provided, then it is inserted between the first and second values.
val opt : ?none:('a, unit)t->('a, 'b)t->('a, 'b option)t
Use opt m to make an emitter for optional values. If ~none is provided, this its sealed value is emitter whenever the input of m is None.
val seq : ?sep:('a, unit)t->('a, 'b)t->('a, 'bSeq.t)t
Use seq m to make an emitter for sequences where each element is emitted with m. If ~sep is provided, then its sealed value is emitted between each element of the sequence.
val group : ?sep:('a, unit)t->('a, unit)tSeq.t->('a, unit)t
Use group s to make a sealed emitter that emits all the sealed values in the sequence s. If ~sep is provided, then its sealed value is emitted between each element in the sequence.
val encl : a:('a, unit)t->b:('a, unit)t->('a, 'b)t->('a, 'b)t
Use encl ~a ~b m to make an emitter that first emits the sealed value in a, then provides its input to m, then emits the sealed value in b.