sig
type 'a equal = 'a -> 'a -> bool
type 'a ord = 'a -> 'a -> int
type 'a hash = 'a -> int
type 'a sequence = ('a -> unit) -> unit
type ('a, +'b) t = private {
is_empty : unit -> bool;
size : unit -> int;
get_exn : 'a -> 'b;
iter : ('a -> 'b -> unit) -> unit;
fold : 'c. ('c -> 'a -> 'b -> 'c) -> 'c -> 'c;
choose : unit -> ('a * 'b) option;
}
type ('a, 'b) map = ('a, 'b) OLinq_map.t
val get : ('a, 'b) OLinq_map.t -> 'a -> 'b option
val get_exn : ('a, 'b) OLinq_map.t -> 'a -> 'b
val mem : ('a, 'b) OLinq_map.t -> 'a -> bool
val size : ('a, 'b) OLinq_map.t -> int
val to_seq : ('a, 'b) OLinq_map.t -> ('a * 'b) OLinq_map.sequence
val to_seq_multimap :
('a, 'b list) OLinq_map.t -> ('a * 'b) OLinq_map.sequence
val to_list : ('a, 'b) OLinq_map.t -> ('a * 'b) list
val to_rev_list : ('a, 'b) OLinq_map.t -> ('a * 'b) list
val fold :
('acc -> 'a -> 'b -> 'acc) -> 'acc -> ('a, 'b) OLinq_map.t -> 'acc
val fold_multimap :
('acc -> 'a -> 'b -> 'acc) -> 'acc -> ('a, 'b list) OLinq_map.t -> 'acc
val get_seq : 'a -> ('a, 'b) OLinq_map.t -> 'b OLinq_map.sequence
val iter : ('a, 'b) OLinq_map.t -> ('a -> 'b -> unit) -> unit
val choose : ('a, 'b) OLinq_map.t -> ('a * 'b) option
module Build :
sig
type ('a, 'b) t
val get : ('a, 'b) OLinq_map.Build.t -> ('a, 'b) OLinq_map.map
val add : ('a, 'b) OLinq_map.Build.t -> 'a -> 'b -> unit
val add_multimap : ('a, 'b list) OLinq_map.Build.t -> 'a -> 'b -> unit
val add_count : ('a, int) OLinq_map.Build.t -> 'a -> unit
val update :
('a, 'b) OLinq_map.Build.t -> 'a -> f:('b -> 'b) -> or_:'b -> unit
val of_hash :
?eq:('a -> 'a -> bool) ->
?hash:('a -> int) -> ?size:int -> unit -> ('a, 'b) OLinq_map.Build.t
val of_cmp :
?cmp:('a -> 'a -> int) -> unit -> ('a, 'b) OLinq_map.Build.t
type 'a src =
Cmp of 'a OLinq_map.ord
| Hash of 'a OLinq_map.equal * 'a OLinq_map.hash * int
| Default
val of_src : 'a OLinq_map.Build.src -> ('a, 'b) OLinq_map.Build.t
val src_of_args :
?cmp:'a OLinq_map.ord ->
?eq:'a OLinq_map.equal ->
?hash:'a OLinq_map.hash -> unit -> 'a OLinq_map.Build.src
val make :
?cmp:'a OLinq_map.ord ->
?eq:'a OLinq_map.equal ->
?hash:'a OLinq_map.hash -> unit -> ('a, 'b) OLinq_map.Build.t
end
val of_seq :
?src:'a OLinq_map.Build.src ->
('a * 'b) OLinq_map.sequence -> ('a, 'b list) OLinq_map.t
val of_list :
?src:'a OLinq_map.Build.src ->
('a * 'b) list -> ('a, 'b list) OLinq_map.t
val count_seq :
?src:'a OLinq_map.Build.src ->
'a OLinq_map.sequence -> ('a, int) OLinq_map.t
val map : ('b -> 'c) -> ('a, 'b) OLinq_map.t -> ('a, 'c) OLinq_map.t
val reverse :
?src:'b OLinq_map.Build.src ->
('a, 'b) OLinq_map.t -> ('b, 'a list) OLinq_map.t
val reverse_multimap :
?src:'b OLinq_map.Build.src ->
('a, 'b list) OLinq_map.t -> ('b, 'a list) OLinq_map.t
val flatten :
('a, 'b OLinq_map.sequence) OLinq_map.t -> ('a * 'b) OLinq_map.sequence
val flatten_l : ('a, 'b list) OLinq_map.t -> ('a * 'b) OLinq_map.sequence
end