Interval_mapSourceA rangemap partitions an interval in 0..size into sub-intervals, and associates a value to this interval (or, more precisely, to each element of this interval).
Iterate on every interval in [key,key+size-1] in a map.
Fold on every interval in [key,key+size-1] in a map.
Adds a mapping to the interval [key,key+size-1] in the map.
Calls f ~size key va vb acc when the value for the interval [key,key+size-1] is different in both maps (and is respectively va and vb). The different intervals are called in increasing order.
val fold_on_diff3 :
'a t ->
'a t ->
'a t ->
'b ->
(size:int -> key -> 'a -> 'a -> 'a -> 'b -> 'b) ->
'bLike fold_on_diff, but with three maps. Less optimized too.
Replace the value of every interval in [key,key+size-1]. Preserve physical equality when feasible.
This associates value to an interval, but splitting (or concatenating) interval affects the value they contain.