sig
type 'a output = {
unit : 'a;
bool : bool -> 'a;
float : float -> 'a;
char : char -> 'a;
int : int -> 'a;
nativeint : nativeint -> 'a;
int32 : int32 -> 'a;
int64 : int64 -> 'a;
string : string -> 'a;
list : 'a list -> 'a;
option : 'a option -> 'a;
record : (string * 'a) list -> 'a;
tuple : 'a list -> 'a;
sum : string -> 'a list -> 'a;
}
val string_target : string CConv.Encode.output
type 'src encoder = {
emit : 'into. 'into CConv.Encode.output -> 'src -> 'into;
}
val unit : unit CConv.Encode.encoder
val bool : bool CConv.Encode.encoder
val float : float CConv.Encode.encoder
val char : char CConv.Encode.encoder
val int : int CConv.Encode.encoder
val nativeint : nativeint CConv.Encode.encoder
val int32 : int32 CConv.Encode.encoder
val int64 : int64 CConv.Encode.encoder
val string : string CConv.Encode.encoder
val list : 'a CConv.Encode.encoder -> 'a list CConv.Encode.encoder
val map : ('a -> 'b) -> 'b CConv.Encode.encoder -> 'a CConv.Encode.encoder
val array : 'a CConv.Encode.encoder -> 'a array CConv.Encode.encoder
val sequence :
'a CConv.Encode.encoder -> 'a CConv.sequence CConv.Encode.encoder
val apply :
'into CConv.Encode.output -> 'src CConv.Encode.encoder -> 'src -> 'into
type 'r record_encoder = {
record_emit :
'into. 'into CConv.Encode.output -> 'r -> (string * 'into) list;
}
val record : 'r CConv.Encode.record_encoder -> 'r CConv.Encode.encoder
val record_fix :
('r CConv.Encode.encoder -> 'r CConv.Encode.record_encoder) ->
'r CConv.Encode.encoder
type 't tuple_encoder = {
tuple_emit : 'into. 'into CConv.Encode.output -> 't -> 'into list;
}
val tuple : 'a CConv.Encode.tuple_encoder -> 'a CConv.Encode.encoder
val pair :
'a CConv.Encode.encoder ->
'b CConv.Encode.encoder -> ('a * 'b) CConv.Encode.encoder
val triple :
'a CConv.Encode.encoder ->
'b CConv.Encode.encoder ->
'c CConv.Encode.encoder -> ('a * 'b * 'c) CConv.Encode.encoder
val quad :
'a CConv.Encode.encoder ->
'b CConv.Encode.encoder ->
'c CConv.Encode.encoder ->
'd CConv.Encode.encoder -> ('a * 'b * 'c * 'd) CConv.Encode.encoder
type 's sum_encoder = {
sum_emit : 'into. 'into CConv.Encode.output -> 's -> string * 'into list;
}
val sum : 'a CConv.Encode.sum_encoder -> 'a CConv.Encode.encoder
val sum0 : ('a -> string) -> 'a CConv.Encode.encoder
val sum_fix :
('a CConv.Encode.encoder -> 'a CConv.Encode.sum_encoder) ->
'a CConv.Encode.encoder
val option : 'a CConv.Encode.encoder -> 'a option CConv.Encode.encoder
end