anchor.diff:    }
   
     /** Returns all interfaces implemented by this class. */
  -  List<Reference> get interfaces {
  +  List<ClassElement> get interfaces {
       if (_interfaces == null) {
  -      final allInterfaces = new Set<Reference>();
  -      final superclassRefIds = new Set<String>();
  -
  -      for (var superclass in superclasses) {
  -        superclassRefIds.add(superclass.refId);
  -      }
  -      
  -      addInterface(Reference ref) {
  -        if (!superclassRefIds.contains(ref.refId)) {
  +      final allInterfaces = new Set<ClassElement>();
  +      final superclassSet = superclasses.toSet();
  +     
  +      addInterface(ClassElement ref) {
  +        if (!superclassSet.contains(ref)) {
             allInterfaces.add(ref);
           }
         }
  -      addInterfaces(Iterable<Reference> refs) {
  +      addInterfaces(Iterable<ClassElement> refs) {
           for(var ref in refs) {
             addInterface(ref);
           }
  
positive.code:     }
      return _classes;
    }
  
    /**
     * Returns all blocks of elements that should be rendered by UI summarizing
  
negative.code:   Element current = lookupLibrary(libraryId);
    if (current == null || current.loading == true) {
      library_loader.load(new Reference.fromId(libraryId));
    }
    for (var i = 1; i < parts.length && current != null; i++) {
      var id = parts[i];
      var next = null;
      for (var child in current.children) {
  