functor (GC : CoreModuleSig) ->
sig
type group = GC.t
module Chan_to_group :
functor (Types : sig type d_t type c_t end) ->
sig
type group_dsc = group
type s_t
type d_t = Types.d_t
type c_t = Types.c_t
val init : d_t Lazy.t Lazy.t -> c_t Lazy.t Lazy.t -> s_t Lazy.t
type dsc = s_t * d_t * c_t
type msg = group_dsc Request_types.Application_to_rcomm.message
type req =
group_dsc Request_types.Application_to_rcomm.send_request
module Make :
functor
(ToChannel : sig
type to_chan = dsc
type send_req = req
val send_request : to_chan -> send_req -> unit
end) ->
sig
type src = ToChannel.to_chan
type req = ToChannel.send_req
type m = msg
val start : src -> unit
val retrieve_message : src -> req -> m
end
end
module Chan_from_group :
functor (Types : sig type s_t type c_t end) ->
sig
type group_dsc = group
type s_t = Types.s_t
type d_t
type c_t = Types.c_t
val init : s_t Lazy.t Lazy.t -> c_t Lazy.t Lazy.t -> d_t Lazy.t
type dsc = s_t * d_t * c_t
type msg = group_dsc Request_types.Rcomm_to_application.message
type req =
group_dsc Request_types.Rcomm_to_application.receive_request
module Make :
functor
(FromChannel : sig
type from_chan = dsc
type receive_req = req
val receive_request :
from_chan -> receive_req -> unit
end) ->
sig
type dest = dsc
type req = FromChannel.receive_req
type m = msg
val start : dest -> unit
val process_message : dest -> req -> m -> unit
end
end
end