Module Message.Message_router

type message =
  1. | Join of {
    1. addr : Com.pubkey;
    2. local : bool;
    }
  2. | Join_ack of {
    1. addr : Com.pubkey;
    2. result : Com.result';
    }
  3. | Leave of {
    1. addr : Com.pubkey;
    }
  4. | Leave_ack of {
    1. addr : Com.pubkey;
    2. result : Com.result';
    }
  5. | Pull of {
    1. addr : Com.pubkey;
    2. id : Com.msg_id;
    }
type t = message
val fold : join:(Com.pubkey -> bool -> 'a) -> join_ack:(Com.pubkey -> Com.result' -> 'a) -> leave:(Com.pubkey -> 'a) -> leave_ack:(Com.pubkey -> Com.result' -> 'a) -> pull:(Com.pubkey -> Com.msg_id -> 'a) -> message -> 'a
val join_ack_fold : (Com.pubkey -> Com.result' -> 'a) -> message -> 'a
val leave_ack_fold : (Com.pubkey -> Com.result' -> 'a) -> message -> 'a
module Acc : sig ... end
module T : sig ... end
module Encode : sig ... end
module Decode : sig ... end
module Mk : sig ... end