# Module type Rpc_client.USE_CLIENT

    module type USE_CLIENT = sig .. end

This module type is what the generated "clnt" module assumes about the client interface

    type t

The client type

    val use : t -> Rpc_program.t -> unit

Announcement that this program will be used. The client may reject this by raising an exception.

    val unbound_sync_call : t ->
           Rpc_program.t -> string -> Xdr.xdr_value -> Xdr.xdr_value

`unbound_sync_call client pgm proc arg`: Invoke the remote procedure `proc` of the program `pgm` via `client`. The input arguments are `arg`. The result arguments are returned (or an error is raised)

    val unbound_async_call : t ->
           Rpc_program.t ->
           string -> Xdr.xdr_value -> ((unit -> Xdr.xdr_value) -> unit) -> unit

`unbound_ssync_call client pgm proc arg emit`: Invoke the remote procedure `proc` of the program `pgm` via `client`. The input arguments are `arg`. When the result `r` is available, the client will call `emit (fun () -> r)` back. When an exception `e` is available, the client will call `emit (fun () -> raise e)` back.