`sig
type ('s, 'i, 'o) work
type ('s, 'i, 'o) gate
type ('x, 'i, 'o) wire
type ('s, 'i, 'o, 'a) guard =
(('s, 'i, 'o) Cf_state_gadget.gate, 'a) Cf_cmonad.t
type ('s, 'i, 'o, 'a) t =
(('s, 'i, 'o) Cf_state_gadget.work, 'a) Cf_cmonad.t
val eval : ('s, 'i, 'o, unit) Cf_state_gadget.t -> 's -> ('i, 'o) Cf_flow.t
val start :
('s0, 'i, 'o, unit) Cf_state_gadget.t ->
's0 -> ('s1, 'i, 'o, unit) Cf_state_gadget.t
val guard :
('s, 'i, 'o, unit) Cf_state_gadget.guard ->
('s, 'i, 'o, 'a) Cf_state_gadget.t
val abort : ('s, 'i, 'o, 'a) Cf_state_gadget.t
val wire :
('s, 'i, 'o, ('x, 'i, 'o) Cf_state_gadget.wire) Cf_state_gadget.t
val wirepair :
('s, 'i, 'o,
('x, 'i, 'o) Cf_state_gadget.wire * ('y, 'i, 'o) Cf_state_gadget.wire)
Cf_state_gadget.t
val null : ('x, 'i, 'o) Cf_state_gadget.wire
val read : ('s, 'i, 'o, 'i) Cf_state_gadget.t
val write : 'o -> ('s, 'i, 'o, unit) Cf_state_gadget.t
val load : ('s, 'i, 'o, 's) Cf_state_gadget.t
val store : 's -> ('s, 'i, 'o, unit) Cf_state_gadget.t
val modify : ('s -> 's) -> ('s, 'i, 'o, unit) Cf_state_gadget.t
class type connector = object method check : bool method id : string end
class ['x, 'i, 'o] rx :
('x, 'i, 'o) Cf_state_gadget.wire ->
object
method check : bool
method get :
('x -> ('s, 'i, 'o, unit) Cf_state_gadget.t) ->
('s, 'i, 'o, unit) Cf_state_gadget.guard
method id : string
end
class ['x, 'i, 'o] tx :
('x, 'i, 'o) Cf_state_gadget.wire ->
object
method check : bool
method id : string
method put : 'x -> ('s, 'i, 'o, unit) Cf_state_gadget.t
end
val simplex :
('s, 'i, 'o,
('x, 'i, 'o) Cf_state_gadget.rx * ('x, 'i, 'o) Cf_state_gadget.tx)
Cf_state_gadget.t
type ('x, 'y, 'i, 'o) pad =
('x, 'i, 'o) Cf_state_gadget.rx * ('y, 'i, 'o) Cf_state_gadget.tx
type ('x, 'y, 'i, 'o) fix =
('y, 'i, 'o) Cf_state_gadget.rx * ('x, 'i, 'o) Cf_state_gadget.tx
val duplex :
('s, 'i, 'o,
('x, 'y, 'i, 'o) Cf_state_gadget.pad *
('x, 'y, 'i, 'o) Cf_state_gadget.fix)
Cf_state_gadget.t
val wrap :
('x, 'i, 'o) #Cf_state_gadget.rx ->
('y, 'i, 'o) #Cf_state_gadget.tx ->
('x, 'y) Cf_flow.t -> ('s, 'i, 'o, unit) Cf_state_gadget.t
end`