@typecheck_method(o=IR)
def copy(self, o):
    new_instance = self.__class__
    return new_instance(o, self.name)
@typecheck_method(o=IR)
def copy(self, o):
    new_instance = self.__class__
    return new_instance(o, self.name)