type t = {send : string -> unit;receive : unit -> string list;status : unit -> string;player : unit -> int option;
}type role = | Host of {bind : string;port : int;
}| Join of {host : string;port : int;
}| Relay of {host : string;port : int;
}
val set_connect : (Cap.network -> role -> (t, string) Stdlib.result) -> unitval connect : < Cap.network.. > -> role -> (t, string) Stdlib.resultval set_tunnel :
(Cap.exec -> host:string -> port:int -> (t, string) Stdlib.result) ->
unitval tunnel :
< Cap.exec.. > ->
host:string ->
port:int ->
(t, string) Stdlib.resultval set_tls :
(Cap.network -> host:string -> port:int -> (t, string) Stdlib.result) ->
unitval tls :
< Cap.network.. > ->
host:string ->
port:int ->
(t, string) Stdlib.result