code: async def item(source, index):
      
      # Prepare
      if index >= 0:
          source = skip.raw(source, index)
      else:
          source = takelast(source, abs(index))
      async with streamcontext(source) as streamer:
          # Get first item
          try:
              result = await anext(streamer)
          except StopAsyncIteration:
              raise IndexError("Index out of range")
          # Check length
          if index < 0:
              count = 1
              async for _ in streamer:
                  count += 1
              if count != abs(index):
                  raise IndexError("Index out of range")
          # Yield result
          yield result
docs: Forward the ``n``th element of an asynchronous sequence.
  
      The index can be negative and works like regular indexing.
      If the index is out of range, and ``IndexError`` is raised.