@typecheck_method(a=IR, ascending=IR)
def copy(self, a, ascending):
    new_instance = self.__class__
    return new_instance(a, ascending, self.on_key)
@typecheck_method(a=IR, ascending=IR)
def copy(self, a, ascending):
    new_instance = self.__class__
    return new_instance(a, ascending, self.on_key)