anchor.diff:  forLifetimes: 'for' '<' lifetimeParams '>';
   
   method
  -   : functionQualifiers 'fn' identifier generics?
  -   (
  -      selfParam ( ',' functionParam)* ','?
  -   ) functionReturnType? whereClause? blockExpression
  +   : functionQualifiers 'fn' identifier generics? '(' selfParam
  +   (
  +      ',' functionParam
  +   )* ','? ')' functionReturnType? whereClause? blockExpression
      ;
   
   selfParam: outerAttribute* (shorthandSelf | typedSelf);
  -shorthandSelf: ('&' | '&' lifetime)? 'mut'? 'self';
  +shorthandSelf: ('&' lifetime?)? 'mut'? 'self';
   typedSelf: 'mut'? 'self' ':' type;
   
   visibility: 'pub' ( '(' ( 'crate' | 'self' | 'super' | 'in' simplePath) ')')?;
  
positive.code: crateRef: identifier | 'self';
  asClause: 'as' (identifier | '_');
  
  useDeclaration: 'use' useTree;
  useTree
     : (simplePath? '::')? '*'
     | (simplePath? '::')? '{' ( useTree (',' useTree)* ','?)? '}'
  
negative.code:    ;
  
  macroRepSep
     : '::' //TODO: Token except delimiters and repetition operators
     ;
  
  macroRepOp: '*' | '+' | '?';
  
  macroTranscriber: delimTokenTree;
  
  //configurationPredicate
  // : configurationOption | configurationAll | configurationAny | configurationNot ; configurationOption: identifier (
  // '=' (STRING_LITERAL | RAW_STRING_LITERAL))?; configurationAll: 'all' '(' configurationPredicateList? ')';
  // configurationAny: 'any' '(' configurationPredicateList? ')'; configurationNot: 'not' '(' configurationPredicate ')';
  
  //configurationPredicateList
  // : configurationPredicate (',' configurationPredicate)* ','? ; cfgAttribute: 'cfg' '(' configurationPredicate ')';
  // cfgAttrAttribute: 'cfg_attr' '(' configurationPredicate ',' cfgAttrs? ')'; cfgAttrs: attr (',' attr)* ','?;
  
  item: outerAttribute* visItem | macroItem;
  visItem
  