sig
  module ToTrans :
    sig
      type 'a send_request =
        'Request_types.Group_to_transport.send_request =
          Transport_req
        | Select_req of 'a
        | Timer_req
        | Message_req of 'a
      type 'a receive_request = 'a send_request list
      type 'a message =
        'Request_types.Group_to_transport.message =
          Create of Proc_info.t * Proc_info.t
        | Destroy of 'a
        | Is_valid of 'a
        | Select of 'a * bool * bool
        | Timer_set of Timer.id
        | Timer_cancel of Timer.id
        | Timeout of Timer.id * unit Lazy.t
        | Message of 'a * View.t * Iovec.t
      val string_of_send_request :
        ('-> string) -> 'a send_request -> string
      val string_of_receive_request :
        ('-> string) -> 'a send_request list -> string
      val string_of_message : ('-> string) -> '-> 'a message -> string
    end
  module THash :
    sig
      type key = Transport_ll.t
      type 'a t = 'Hashtbl.Make(Transport_ll).t
      val create : int -> 'a t
      val clear : 'a t -> unit
      val copy : 'a t -> 'a t
      val add : 'a t -> key -> '-> unit
      val remove : 'a t -> key -> unit
      val find : 'a t -> key -> 'a
      val find_all : 'a t -> key -> 'a list
      val replace : 'a t -> key -> '-> unit
      val mem : 'a t -> key -> bool
      val iter : (key -> '-> unit) -> 'a t -> unit
      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
      val length : 'a t -> int
    end
  val trans_request_store :
    Rcomm.Make.RcommDescriptor.trans_dsc
    Rcomm.Request_types.Group_to_transport.message Channel_message_store.t
    Pervasives.ref
  val timer_request_store :
    Rcomm.Make.RcommDescriptor.trans_dsc
    Rcomm.Request_types.Group_to_transport.message Channel_message_store.t
    Pervasives.ref
  val message_request_store :
    (Rcomm.Make.RcommDescriptor.trans_dsc
     Rcomm.Request_types.Group_to_transport.message *
     Channel_message_store.cont)
    Rcomm.Make.To_transport.THash.t
  val select_request_store :
    (Rcomm.Make.RcommDescriptor.trans_dsc
     Rcomm.Request_types.Group_to_transport.message *
     Channel_message_store.cont)
    Rcomm.Make.To_transport.THash.t
  val sa_send_request :
    (Rcomm.Make.RcommDescriptor.trans_dsc
     Rcomm.Request_types.Group_to_transport.send_request -> unit)
    Sa_var.t
  val send_request :
    Rcomm.Make.RcommDescriptor.trans_dsc
    Rcomm.Request_types.Group_to_transport.send_request -> unit
  val process_transport_request :
    unit ->
    Rcomm.Make.RcommDescriptor.trans_dsc
    Rcomm.Request_types.Group_to_transport.message
    Channel_message_store.message
  val process_select_request :
    Rcomm.Make.To_transport.THash.key ->
    Rcomm.Make.RcommDescriptor.trans_dsc
    Rcomm.Request_types.Group_to_transport.message
  val process_timer_request :
    unit ->
    Rcomm.Make.RcommDescriptor.trans_dsc
    Rcomm.Request_types.Group_to_transport.message
    Channel_message_store.message
  val process_message_request :
    Rcomm.Make.To_transport.THash.key ->
    Rcomm.Make.RcommDescriptor.trans_dsc
    Rcomm.Request_types.Group_to_transport.message
  val retrieve_message :
    Rcomm.Make.To_transport.THash.key
    Rcomm.Request_types.Group_to_transport.send_request ->
    Rcomm.Make.RcommDescriptor.trans_dsc
    Rcomm.Request_types.Group_to_transport.message
    Channel_message_store.message
  val send_to_trans_from_group :
    Rcomm.Make.RcommDescriptor.trans_dsc
    Rcomm.Request_types.Group_to_transport.message ->
    Rcomm.Make.RcommDescriptor.t option -> Channel_message_store.cont -> unit
end