code: def parse_union_member_types(lexer: Lexer) -> List[NamedTypeNode]:
      
      types: List[NamedTypeNode] = []
      if expect_optional_token(lexer, TokenKind.EQUALS):
          # optional leading pipe
          expect_optional_token(lexer, TokenKind.PIPE)
          append = types.append
          while True:
              append(parse_named_type(lexer))
              if not expect_optional_token(lexer, TokenKind.PIPE):
                  break
      return types
docs: UnionMemberTypes