RangeSet[T] = ref object st*: AvlSortedMultiSet[(int, int, T)] default*: T
CPLIB_COLLECTIONS_RANGESET = 1
proc get_segment[T](self: RangeSet[T]; x: int): (int, int, T)
proc initRangeSet[T](default: T): RangeSet[T]
proc update[T](self: RangeSet[T]; l, r: int; value: T)