anchor.diff:   * Element representing a top-level function.
    */
   class TopLevelFunctionElementForLink extends ExecutableElementForLink
  -    implements FunctionElementImpl, ReferenceableElementForLink {
  +    with ReferenceableElementForLink
  +    implements FunctionElementImpl {
     DartType _returnType;
   
     TopLevelFunctionElementForLink(
  
positive.code:    * return the associated constructor (which may be `this` or some
     * other element).  Otherwise return `null`.
     */
    ConstructorElementForLink get asConstructor;
  
    /**
     * If this element can be used in a getter context to refer to a
     * constant variable, return the [ConstVariableNode] for the
     * constant value.  Otherwise return `null`.
     */
    ConstVariableNode get asConstVariable;
  
    /**
     * Return the static type (possibly inferred) of the entity referred to by
     * this element.
     */
    DartType get asStaticType;
  
    /**
     * If this element can be used in a getter context as a type inference
     * dependency, return the [TypeInferenceNode] for the inferred type.
     * Otherwise return `null`.
     */
    TypeInferenceNode get asTypeInferenceNode;
  
    /**
     * Return the type indicated by this element when it is used in a
     * type instantiation context.  If this element can't legally be
     * instantiated as a type, return the dynamic type.
     */
    DartType buildType(
        DartType getTypeArgument(int i), List<int> implicitFunctionTypeIndices);
  
    /**
     * If this element contains other named elements, return the
  
negative.code:   final LibraryElementForLink _library;
  
    NonstaticMemberElementForLink(this._library, this._target, this._name);
  
    @override
    ConstVariableNode get asConstVariable => _target.asConstVariable;
  