let add_one ~is_absolute = function | Fixed c -> Fixed (c+1) | Interval(min,max) -> Interval(min+1,max+1) | Bounded _ as r when is_absolute -> r | Bounded (min,_) -> Unbounded (min+1) | Unbounded min -> Unbounded (min+1)