anchor.diff:     */
     final List<ReferenceableElementForLink> _references;
   
  -  List<ClassElementForLink> _types;
  +  List<ClassElementForLink_Class> _types;
     Map<String, ReferenceableElementForLink> _containedNames;
     List<TopLevelVariableElementForLink> _topLevelVariables;
  +  List<ClassElementForLink_Enum> _enums;
   
     @override
     final LibraryElementForLink enclosingElement;
  
positive.code:     if (_containedNames == null) {
        _containedNames = <String, ReferenceableElementForLink>{};
        // TODO(paulberry): what's the correct way to handle name conflicts?
        for (ClassElementForLink type in types) {
          _containedNames[type.name] = type;
        }
        for (TopLevelVariableElementForLink variable in topLevelVariables) {
          _containedNames[variable.name] = variable;
  
negative.code:   }
  
    @override
    List<ClassElementForLink_Class> get types {
      if (_types == null) {
        _types = <ClassElementForLink_Class>[];
        for (UnlinkedClass unlinkedClass in _unlinkedUnit.classes) {
          _types.add(new ClassElementForLink_Class(this, unlinkedClass));
        }
      }
      return _types;
  