@typecheck_method(s=IR, start=IR, end=IR)
def copy(self, s, start, end):
    new_instance = self.__class__
    return new_instance(s, start, end)
@typecheck_method(s=IR, start=IR, end=IR)
def copy(self, s, start, end):
    new_instance = self.__class__
    return new_instance(s, start, end)