anchor.diff:      }
   
       for (Link<Token> t = typeVariableStarters; t.isNotEmpty; t = t.tail) {
  -      parser.parseTypeVariablesOpt(t.head);
  +      computeTypeParamOrArg(t.head, true).parseVariables(t.head, parser);
         parser.listener.beginFunctionType(start);
       }
   
  
positive.code:   /// The last token in the type reference.
    Token end;
  
    /// The tokens before the start of type variables of function types seen
    /// during analysis. Notice that the tokens in this list might precede
    /// either `'<'` or `'('` as not all function types have type parameters.
    Link<Token> typeVariableStarters = const Link<Token>();
  
    /// If the receiver represents a generalized function type then this indicates
  
negative.code:   return false;
  }
  
  /// Instances of [ComplexTypeInfo] are returned by [computeType] to represent
  /// type references that cannot be represented by the constants above.
  class ComplexTypeInfo implements TypeInfo {
  