module type ARG =sig..end
ARG is for making Make
type identity 
see S.identity
type key 
see S.key
type server_notif 
see S.server_notif
type client_notif 
see S.client_notif
val prepare : identity ->
       server_notif -> client_notif option Lwt.tprepare f transforms server notifications into client
      notifications. It provides the identity as a parameter which identifies
      the client. You can suppress notifications for a specific client (for
      instance because of missing authorisation) by having f return None.
val equal_key : key -> key -> boolequal_key is a function testing the equality between two values
      of type key.
val equal_identity : identity -> identity -> boolequal_identity is the same as equal_key but for values of type
      identity.
val get_identity : unit -> identity Lwt.tget_identity is a function returning a value of type identity
      corresponding to a client.
val max_resource : intmax_resource is the initial size for the hash table storing the data of
      clients listening on resources, for best results it should be on the
      order of the expected number of different resources one may want to be
      able to listen to.
val max_identity_per_resource : intmax_identity_per_resource is the initial size for the tables storing the
      data of clients listening on one given resource, fo best results it
      should be on the order of the expected number of clients that may listen
      on a given resource.