def METHOD_NAME():
    def wrapper(f, args, kwargs):
        return f(*args, **kwargs)
    def g():
        yield 0
        for _ in range(1, 10):
            n = yield _
            assert _ == n
        return
    wrap(g, wrapper)
    gen = g()
    n = next(gen)
    channel = [n]
    try:
        while True:
            n = gen.send(n)
            channel.append(n)
    except StopIteration:
        pass
    assert list(range(10)) == channel