Interval_map.With_ExtractSourceThis associates value to an interval, but splitting (or concatenating) interval affects the value they contain.
module Value : sig ... endval fold_on_diff :
t ->
t ->
'a ->
extracta:(Value.t -> idx:int -> size:int -> oldsize:int -> 'extracted) ->
extractb:(Value.t -> idx:int -> size:int -> oldsize:int -> 'extracted) ->
(size:int -> key -> 'extracted -> 'extracted -> 'a -> 'a) ->
'aGuarantees that we call the function only on values that are not equal.