sig
type key
type 'v map
val id : 'v Hptmap_sig.Shape.map -> int
val hash : 'v Hptmap_sig.Shape.map -> int
val equal : 'v Hptmap_sig.Shape.map -> 'v Hptmap_sig.Shape.map -> bool
val compare :
('v -> 'v -> int) ->
'v Hptmap_sig.Shape.map -> 'v Hptmap_sig.Shape.map -> int
val pretty :
'v Pretty_utils.formatter ->
'v Hptmap_sig.Shape.map Pretty_utils.formatter
val is_empty : 'v Hptmap_sig.Shape.map -> bool
val is_singleton :
'v Hptmap_sig.Shape.map -> (Hptmap_sig.Shape.key * 'v) option
val on_singleton :
(Hptmap_sig.Shape.key -> 'v -> bool) -> 'v Hptmap_sig.Shape.map -> bool
val cardinal : 'v Hptmap_sig.Shape.map -> int
val find : Hptmap_sig.Shape.key -> 'v Hptmap_sig.Shape.map -> 'v
val find_check_missing :
Hptmap_sig.Shape.key -> 'v Hptmap_sig.Shape.map -> 'v
val find_key :
Hptmap_sig.Shape.key -> 'v Hptmap_sig.Shape.map -> Hptmap_sig.Shape.key
val mem : Hptmap_sig.Shape.key -> 'v Hptmap_sig.Shape.map -> bool
val min_binding : 'v Hptmap_sig.Shape.map -> Hptmap_sig.Shape.key * 'v
val max_binding : 'v Hptmap_sig.Shape.map -> Hptmap_sig.Shape.key * 'v
val iter :
(Hptmap_sig.Shape.key -> 'v -> unit) -> 'v Hptmap_sig.Shape.map -> unit
val for_all :
(Hptmap_sig.Shape.key -> 'v -> bool) -> 'v Hptmap_sig.Shape.map -> bool
val exists :
(Hptmap_sig.Shape.key -> 'v -> bool) -> 'v Hptmap_sig.Shape.map -> bool
val fold :
(Hptmap_sig.Shape.key -> 'v -> 'b -> 'b) ->
'v Hptmap_sig.Shape.map -> 'b -> 'b
val fold_rev :
(Hptmap_sig.Shape.key -> 'v -> 'b -> 'b) ->
'v Hptmap_sig.Shape.map -> 'b -> 'b
val cached_fold :
cache_name:string ->
temporary:bool ->
f:(Hptmap_sig.Shape.key -> 'v -> 'b) ->
joiner:('b -> 'b -> 'b) -> empty:'b -> 'v Hptmap_sig.Shape.map -> 'b
val fold2_join_heterogeneous :
cache:Hptmap_sig.cache_type ->
empty_left:('b Hptmap_sig.Shape.map -> 'c) ->
empty_right:('a Hptmap_sig.Shape.map -> 'c) ->
both:(Hptmap_sig.Shape.key -> 'a -> 'b -> 'c) ->
join:('c -> 'c -> 'c) ->
empty:'c -> 'a Hptmap_sig.Shape.map -> 'b Hptmap_sig.Shape.map -> 'c
type predicate_type = ExistentialPredicate | UniversalPredicate
type predicate_result = PTrue | PFalse | PUnknown
val binary_predicate :
Hptmap_sig.cache_type ->
Hptmap_sig.Shape.predicate_type ->
decide_fast:('a Hptmap_sig.Shape.map ->
'b Hptmap_sig.Shape.map -> Hptmap_sig.Shape.predicate_result) ->
decide_fst:(Hptmap_sig.Shape.key -> 'a -> bool) ->
decide_snd:(Hptmap_sig.Shape.key -> 'b -> bool) ->
decide_both:(Hptmap_sig.Shape.key -> 'a -> 'b -> bool) ->
'a Hptmap_sig.Shape.map -> 'b Hptmap_sig.Shape.map -> bool
val symmetric_binary_predicate :
Hptmap_sig.cache_type ->
Hptmap_sig.Shape.predicate_type ->
decide_fast:('v Hptmap_sig.Shape.map ->
'v Hptmap_sig.Shape.map -> Hptmap_sig.Shape.predicate_result) ->
decide_one:(Hptmap_sig.Shape.key -> 'v -> bool) ->
decide_both:(Hptmap_sig.Shape.key -> 'v -> 'v -> bool) ->
'v Hptmap_sig.Shape.map -> 'v Hptmap_sig.Shape.map -> bool
val decide_fast_inclusion :
'v Hptmap_sig.Shape.map ->
'v Hptmap_sig.Shape.map -> Hptmap_sig.Shape.predicate_result
val decide_fast_intersection :
'v Hptmap_sig.Shape.map ->
'v Hptmap_sig.Shape.map -> Hptmap_sig.Shape.predicate_result
val clear_caches : unit -> unit
end