def METHOD_NAME(*args):
    # Strategy:
    # - clone args that would have been mutated
    # - run mutable_op
    # - return the cloned args as additional outputs
    new_args = []
    extra_rets = []
    for is_write, arg in zip(mutable_args(mutable_op), args):
        if is_write:
            cloned = arg.clone()
            new_args.append(cloned)
            extra_rets.append(cloned)
        else:
            new_args.append(arg)
    result = mutable_op(*new_args)
    if result is None:
        return tuple(extra_rets)
    if isinstance(result, tuple):
        return (*result, *extra_rets)
    return (result, *extra_rets)