anchor.diff:    final NullabilitySuffix _nullabilitySuffix;
     final LibraryElement _coreLibrary;
     final LibraryElement _asyncLibrary;
  +
  +  ClassElement _futureElement;
  +  ClassElement _futureOrElement;
  +  ClassElement _iterableElement;
  +  ClassElement _mapElement;
  +  ClassElement _streamElement;
   
     InterfaceType _boolType;
     InterfaceType _deprecatedType;
  
positive.code:     return _listType;
    }
  
    @override
    InterfaceType get mapObjectObjectType {
      return _mapObjectObjectType ??=
          mapType.instantiate(<DartType>[objectType, objectType]);
    }
  
    @override
  
negative.code:         nullabilitySuffix: nullabilitySuffix);
    }
  
    /// Return the class with the given [name] from the given [library], or
    /// throw a [StateError] if there is no class with the given name.
    ClassElement _getClassElement(LibraryElement library, String name) {
      var element = library.getType(name);
      if (element == null) {
        throw StateError('No definition of type $name');
      }
      return element;
    }
  
    /// Return the type with the given [name] from the given [library], or
    /// throw a [StateError] if there is no class with the given name.
    InterfaceType _getType(LibraryElement library, String name) {
      var element = _getClassElement(library, name);
  
      var typeArguments = const <DartType>[];
      var typeParameters = element.typeParameters;
  