Module Common.D

exception Init_more_than_once
exception InvalidNode of Distributed.Node_id.t
exception Local_only_mode
type 'a t
type 'a io = 'a Lwt.t
type message_type = Msg.t
type 'a matcher_list
type monitor_ref
type monitor_reason =
  1. | Normal of Distributed.Process_id.t
  2. | Exception of Distributed.Process_id.t * exn
  3. | UnkownNodeId of Distributed.Process_id.t * Distributed.Node_id.t
  4. | NoProcess of Distributed.Process_id.t
module Remote_config : sig ... end
module Local_config : sig ... end
type node_config =
  1. | Local of Local_config.t
  2. | Remote of Remote_config.t
val return : 'a -> 'a t
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
type proc_rep =
  1. | Fun of unit -> unit t
  2. | Registered of string
val register : string -> (Distributed.Process_id.t -> unit -> unit t) -> unit t
val fail : exn -> 'a t
val catch : (unit -> 'a t) -> (exn -> 'a t) -> 'a t
val case : (message_type -> (unit -> 'a t) option) -> 'a matcher_list
val termination_case : (monitor_reason -> 'a t) -> 'a matcher_list
val (|.) : 'a matcher_list -> 'a matcher_list -> 'a matcher_list
val receive : ?timeout_duration:float -> 'a matcher_list -> 'a option t
val receive_loop : ?timeout_duration:float -> bool matcher_list -> unit t
val broadcast : Distributed.Node_id.t -> message_type -> unit t
val unmonitor : monitor_ref -> unit t
val get_self_pid : Distributed.Process_id.t t
val get_self_node : Distributed.Node_id.t t
val get_remote_node : string -> Distributed.Node_id.t option t
val get_remote_nodes : Distributed.Node_id.t list t
val add_remote_node : string -> int -> string -> Distributed.Node_id.t t
val remove_remote_node : Distributed.Node_id.t -> unit t
val lift_io : 'a io -> 'a t
val run_node : ?process:(unit -> unit t) -> node_config -> unit io
module M : sig ... end
val let* : 'a t -> ('a -> 'b t) -> 'b t
val let+ : 'a t -> ('a -> 'b) -> 'b t
val mapM : ('a -> 'b t) -> 'a list -> 'b list t
val dmap : pids:Distributed.Process_id.t list -> request:('a -> index:int -> 'step M.request) -> reply:('step M.reply -> (unit -> 'b t) option) -> 'a list -> 'b list t
val handle_request : Distributed.Process_id.t -> step:'step M.step -> handler:('step M.request -> (unit -> ('step M.reply * 'b) t) option) -> 'b t