anchor.diff:      List<DartType> typeArgs =
           TypeImpl.substitute(typeArguments, argumentTypes, parameterTypes);
       return new FunctionTypeImpl._(
  -        element, name, prune, typeArgs, _typeParameters, _boundTypeParameters);
  +        element, name, prune, typeArgs, _isInstantiated);
     }
   
     @override
  
positive.code:    */
    FunctionTypeImpl(ExecutableElement element,
        [List<FunctionTypeAliasElement> prunedTypedefs])
        : this._(element, null, prunedTypedefs, null, null, null);
  
    /**
     * Initialize a newly created function type to be declared by the given
     * [element], with the given [name] and [typeArguments].
     *
     * TODO(paulberry): set [typeParameters] and [boundTypeParameters] properly.
     */
    FunctionTypeImpl.elementWithNameAndArgs(
        Element element, String name, List<DartType> typeArguments)
        : this._(element, name, null, typeArguments,
              const <TypeParameterElement>[], const <TypeParameterElement>[]);
  
    /**
     * Initialize a newly created function type to be declared by the given
  
negative.code:    */
    FunctionTypeImpl.forTypedef(FunctionTypeAliasElement element,
        [List<FunctionTypeAliasElement> prunedTypedefs])
        : this._(element, element?.name, prunedTypedefs, null, false);
  
    /**
     * Private constructor.
     */
    FunctionTypeImpl._(TypeParameterizedElement element, String name,
        this.prunedTypedefs, List<DartType> typeArguments, this._isInstantiated)
        : super(element, name) {
      if (typeArguments == null) {
        // TODO(jmesserly): reuse TypeParameterTypeImpl.getTypes once we can
        // make it generic, which will allow it to return List<DartType> instead
  