async def METHOD_NAME():
    # We are mimicking an object which is async iterable, but when sliced
    # returns something that is not anymore. This is similar to an already
    # prefetched django QuerySet, which is async iterable by default, but
    # when sliced, since it is already prefetched, will return a list.
    class Slicer:
        def __init__(self, nodes) -> None:
            self.nodes = nodes
        async def __aiter__(self):
            for n in self.nodes:
                yield n
        def __getitem__(self, key):
            return self.nodes[key]
    @strawberry.type
    class SomeType(relay.Node):
        id: relay.NodeID[int]
    @strawberry.type
    class Query:
        @relay.connection(relay.ListConnection[SomeType])
        async def some_type_conn(self) -> AsyncIterable[SomeType]:
            return Slicer([SomeType(id=0), SomeType(id=1), SomeType(id=2)])
    schema = strawberry.Schema(query=Query)
    ret = await schema.execute(
        """\
    query {
      someTypeConn {
        edges {
          node {
            id
          }
        }
      }
    }
    """
    )
    assert ret.errors is None
    assert ret.data == {
        "someTypeConn": {
            "edges": [
                {"node": {"id": to_base64("SomeType", 0)}},
                {"node": {"id": to_base64("SomeType", 1)}},
                {"node": {"id": to_base64("SomeType", 2)}},
            ],
        }
    }