functor
(Types : sig
type send_request
type receive_request = send_request list
val to_string : send_request -> string
end) ->
sig
module Set :
sig
type elt = Types.send_request
type t = Generic_request_handler.MakeRequest(Types).Set.t
val empty : t
val is_empty : t -> bool
val mem : t -> elt -> bool
val add : t -> elt -> t
val singleton : elt -> t
val remove : t -> elt -> t
val cardinal : t -> int
val union : t -> t -> t
val intersectp : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val mem_filt : t -> elt list -> elt list
val fst_mem_filt : t -> (elt * 'a) list -> (elt * 'a) list
val not_mem_filt : t -> elt list -> elt list
val of_sorted_list : elt list -> t
val of_list : elt list -> t
val to_list : t -> elt list
val elements : t -> elt list
val inter : t -> t -> t
val diff : t -> t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val is_subset : t -> t -> bool
val fold : ('a -> elt -> 'a) -> 'a -> t -> 'a
val range_fold : (elt -> int) -> ('a -> elt -> 'a) -> 'a -> t -> 'a
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> t
val partition : (elt -> bool) -> t -> t * t
val min_elt : t -> elt
val max_elt : t -> elt
val choose : t -> elt
val add_list : t -> elt list -> t
val subtract_list : t -> elt list -> t
end
type req = Set.t * Set.t * Set.t
type send_req = Types.send_request
type receive_req = Types.receive_request
val empty : Set.t * Set.t * Set.t
val merge_send_request :
Set.t * Set.t * Set.t -> Set.elt -> Set.t * Set.t * Set.t
val merge_receive_request :
Set.t * Set.t * Set.t -> Set.elt list -> Set.t * Set.t * Set.t
val match_requests :
Set.t * Set.t * Set.t ->
(Set.elt * Set.elt list) option * (Set.t * Set.t * Set.t)
end