code: def parse_implements_interfaces(lexer: Lexer) -> List[NamedTypeNode]:
      
      types: List[NamedTypeNode] = []
      if expect_optional_keyword(lexer, "implements"):
          # optional leading ampersand
          expect_optional_token(lexer, TokenKind.AMP)
          append = types.append
          while True:
              append(parse_named_type(lexer))
              if not expect_optional_token(lexer, TokenKind.AMP):
                  break
      return types
docs: ImplementsInterfaces