sig
type ('a, 'b) work
type ('a, 'b) gate
type ('a, 'b, 'c) wire
type ('a, 'b, 'c) guard = (('a, 'b) Cf_gadget.gate, 'c) Cf_cmonad.t
type ('a, 'b, 'c) t = (('a, 'b) Cf_gadget.work, 'c) Cf_cmonad.t
val eval : ('a, 'b, unit) Cf_gadget.t -> ('a, 'b) Cf_flow.t
val start : ('a, 'b, unit) Cf_gadget.t -> ('a, 'b, unit) Cf_gadget.t
val guard : ('a, 'b, unit) Cf_gadget.guard -> ('a, 'b, 'c) Cf_gadget.t
val abort : ('a, 'b, 'c) Cf_gadget.t
val wire : ('a, 'b, ('c, 'a, 'b) Cf_gadget.wire) Cf_gadget.t
val wirepair :
('a, 'b, ('c, 'a, 'b) Cf_gadget.wire * ('d, 'a, 'b) Cf_gadget.wire)
Cf_gadget.t
val null : ('a, 'b, ('c, 'a, 'b) Cf_gadget.wire) Cf_gadget.t
val read : ('a, 'b, 'a) Cf_gadget.t
val write : 'a -> ('b, 'a, unit) Cf_gadget.t
class type connector = object method check : bool method id : string end
class ['a, 'b, 'c] rx :
('a, 'b, 'c) Cf_gadget.wire ->
object
method check : bool
method get :
('a -> ('b, 'c, unit) Cf_gadget.t) -> ('b, 'c, unit) Cf_gadget.guard
method id : string
end
class ['a, 'b, 'c] tx :
('a, 'b, 'c) Cf_gadget.wire ->
object
method check : bool
method id : string
method put : 'a -> ('b, 'c, unit) Cf_gadget.t
end
val connect :
('a, 'b, ('c, 'a, 'b) Cf_gadget.wire) Cf_gadget.t ->
('a, 'b, ('c, 'a, 'b) Cf_gadget.rx * ('c, 'a, 'b) Cf_gadget.tx)
Cf_gadget.t
val simplex :
('a, 'b, ('c, 'a, 'b) Cf_gadget.rx * ('c, 'a, 'b) Cf_gadget.tx)
Cf_gadget.t
type ('a, 'b, 'c, 'd) pad =
('a, 'c, 'd) Cf_gadget.rx * ('b, 'c, 'd) Cf_gadget.tx
type ('a, 'b, 'c, 'd) fix =
('b, 'c, 'd) Cf_gadget.rx * ('a, 'c, 'd) Cf_gadget.tx
val connectpair :
('a, 'b, ('c, 'a, 'b) Cf_gadget.wire * ('d, 'a, 'b) Cf_gadget.wire)
Cf_gadget.t ->
('a, 'b, ('c, 'd, 'a, 'b) Cf_gadget.fix * ('c, 'd, 'a, 'b) Cf_gadget.pad)
Cf_gadget.t
val duplex :
('a, 'b, ('c, 'd, 'a, 'b) Cf_gadget.fix * ('c, 'd, 'a, 'b) Cf_gadget.pad)
Cf_gadget.t
val wrap :
('a, 'b, 'c) #Cf_gadget.rx ->
('d, 'b, 'c) #Cf_gadget.tx ->
('a, 'd) Cf_flow.t -> ('b, 'c, unit) Cf_gadget.t
class virtual ['a, 'b] next :
object
method private virtual guard : ('a, 'b, unit) Cf_gadget.guard
method next : ('a, 'b, 'c) Cf_gadget.t
end
class virtual ['a, 'b] start :
object
method private virtual guard : ('a, 'b, unit) Cf_gadget.guard
method start : ('a, 'b, unit) Cf_gadget.t
end
val create :
(('a, 'b, 'c, 'd) Cf_gadget.pad -> ('c, 'd) #Cf_gadget.start) ->
('c, 'd, ('a, 'b, 'c, 'd) Cf_gadget.fix) Cf_gadget.t
val createM :
(('a, 'b, 'c, 'd) Cf_gadget.pad ->
('c, 'd, ('c, 'd) #Cf_gadget.start) Cf_gadget.t) ->
('c, 'd, ('a, 'b, 'c, 'd) Cf_gadget.fix) Cf_gadget.t
end