Module Sigs

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