beginCompilationUnit(Stream)
  beginMetadataStar(Stream)
  endMetadataStar(0)
  beginTopLevelMember(Stream)
    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
      handleIdentifier(Stream, typeReference)
      beginTypeArguments(<)
        handleIdentifier(List, typeReference)
        beginTypeArguments(<)
          handleIdentifier(x, typeReference)
          handleNoTypeArguments(>)
          handleType(x, null)
        endTypeArguments(1, <, >)
        handleType(List, null)
      endTypeArguments(1, <, >)
      handleType(Stream, null)
      handleIdentifier(y, topLevelVariableDeclaration)
      handleNoFieldInitializer(;)
    endTopLevelFields(null, null, null, null, null, 1, Stream, ;)
  endTopLevelDeclaration()
endCompilationUnit(1, )
