docs: public String typeArguments() throws RecognitionException {
          String typeArguments = "";
          try {
              int first = input.index();
              Token token = match( input,
                                   DRL5Lexer.LESS,
                                   null,
                                   new int[]{DRL5Lexer.QUESTION, DRL5Lexer.ID},
                                   DroolsEditorType.SYMBOL );
              if ( state.failed ) return typeArguments;
  
              typeArgument();
              if ( state.failed ) return typeArguments;
  
              while ( input.LA( 1 ) == DRL5Lexer.COMMA ) {
                  token = match( input,
                                 DRL5Lexer.COMMA,
                                 null,
                                 new int[]{DRL5Lexer.QUESTION, DRL5Lexer.ID},
                                 DroolsEditorType.IDENTIFIER );
                  if ( state.failed ) return typeArguments;
  
                  typeArgument();
                  if ( state.failed ) return typeArguments;
              }
  
              token = match( input,
                             DRL5Lexer.GREATER,
                             null,
                             null,
                             DroolsEditorType.SYMBOL );
              if ( state.failed ) return typeArguments;
              typeArguments = input.toString( first,
                                              token.getTokenIndex() );
  
          } catch ( RecognitionException re ) {
              reportError( re );
          }
          return typeArguments;
      }