type 's scheduler = {bind : 'a 'b. ('a, 's) io -> ('a -> ('b, 's) io) -> ('b, 's) io;return : 'a. 'a -> ('a, 's) io;
}type ('flow, 'error, 's) flow = {recv : 'flow ->
Cstruct.t ->
(([ `End_of_flow | `Input of int ], 'error) Stdlib.result, 's) io;send : 'flow -> Cstruct.t -> ((int, 'error) Stdlib.result, 's) io;pp_error : Stdlib.Format.formatter -> 'error -> unit;
}type ('uid, 'ref, 'v, 'g, 's) access = {get : 'uid -> ('uid, 'v, 'g) store -> ('v option, 's) io;parents : 'uid -> ('uid, 'v, 'g) store -> ('v list, 's) io;deref : ('uid, 'v, 'g) store -> 'ref -> ('uid option, 's) io;locals : ('uid, 'v, 'g) store -> ('ref list, 's) io;shallowed : ('uid, 'v, 'g) store -> ('uid list, 's) io;shallow : ('uid, 'v, 'g) store -> 'uid -> (unit, 's) io;unshallow : ('uid, 'v, 'g) store -> 'uid -> (unit, 's) io;
}module type SCHED = sig ... endmodule type STORE = sig ... endmodule type IO = sig ... endmodule type UID = sig ... endmodule type REF = sig ... endmodule type FLOW = sig ... end