Module Lmap.Make
Parameters
module T : Flambda2_algorithms.Lmap.ThingSignature
type key = T.tval empty : 'a tval is_empty : 'a t -> boolThe key should not already exist in the map; this is not checked.
Unlike disjoint_union on maps, the disjointness is not checked.
The given maps must be pairwise disjoint, which is not checked.
Simultaneously map over the elements and accumulate a value. The arguments are ordered so as to make the order preservation as explicit as possible (the accumulator is produced from the values _before_ the key and value being passed).
val data : 'a t -> 'a listval to_seq : 'a t -> (key * 'a) Stdlib.Seq.tval add_seq : (key * 'a) Stdlib.Seq.t -> 'a t -> 'a tKeys in the sequence must be distinct from each other and from keys already in the map; neither of these conditions is checked.
val of_seq : (key * 'a) Stdlib.Seq.t -> 'a tKeys in the sequence must be distinct, which is not checked.
val print :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter ->
'a t ->
unitval invariant : 'a t -> unitCheck that there are no duplicates in the list, calling Misc.fatal_errorf if a duplicate is found.