Message.Message_routertype message = | Join of {addr : Com.pubkey;local : bool;}| Join_ack of {addr : Com.pubkey;result : Com.result';}| Leave of {addr : Com.pubkey;}| Leave_ack of {addr : Com.pubkey;result : Com.result';}| Pull of {addr : Com.pubkey;id : Com.msg_id;}type t = messageval 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 ->
'aval join_ack_fold : (Com.pubkey -> Com.result' -> 'a) -> message -> 'aval leave_ack_fold : (Com.pubkey -> Com.result' -> 'a) -> message -> 'amodule Acc : sig ... endmodule T : sig ... endmodule Encode : sig ... endmodule Decode : sig ... endmodule Mk : sig ... end