inline range, reverse_range
implement arbitrary arity augment