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