Sourcetype ('a, 'err) t = | Read of {buffer : bytes;off : int;len : int;k : [ `End | `Len of int ] -> ('a, 'err) t;
}| Write of {buffer : string;off : int;len : int;k : int -> ('a, 'err) t;
}| Return of 'a| Error of 'err
Sourceval reword_error : ('a -> 'b) -> ('v, 'a) t -> ('v, 'b) t Sourceval join : (('a, 'err) t, 'err) t -> ('a, 'err) t