anchor.diff:        _importedDeferredBy = null;
         _constantsDeferredBy = null;
   
  -      // Find all the output units we have used.
  -      // Also generate a unique name for each OutputUnit.
  -      for (OutputUnit outputUnit in _elementToOutputUnit.values) {
  -        allOutputUnits.add(outputUnit);
  -      }
  -      for (OutputUnit outputUnit in _constantToOutputUnit.values) {
  -        allOutputUnits.add(outputUnit);
  -      }
  -
  +      // Find all the output units elements/constants have been mapped to, and
  +      // canonicalize them.
  +      elementToOutputUnitBuilder.forEach(
  +          (Element element, OutputUnit outputUnit) {
  +        OutputUnit representative = allOutputUnits.lookup(outputUnit);
  +        if (representative == null) {
  +          representative = outputUnit;
  +          allOutputUnits.add(representative);
  +        }
  +        _elementToOutputUnit[element] = representative;
  +      });
  +      constantToOutputUnitBuilder.forEach(
  +          (Constant constant, OutputUnit outputUnit) {
  +        OutputUnit representative = allOutputUnits.lookup(outputUnit);
  +        if (representative == null) {
  +          representative = outputUnit;
  +          allOutputUnits.add(representative);
  +        }
  +        _constantToOutputUnit[constant] = representative;
  +      });
  +
  +      // Generate a unique name for each OutputUnit.
         _assignNamesToOutputUnits(allOutputUnits);
       });
     }
  
positive.code:         _addMirrorElements();
        }
  
        Set<Constant> allConstants = new Set<Constant>();
        // Reverse the mapping. For each element record an OutputUnit collecting
        // all deferred imports using this element. Same for constants.
        for (Import import in _importedDeferredBy.keys) {
          for (Element element in _importedDeferredBy[import]) {
            _addImportToOutputUnitOfElement(element, import);
          }
          for (Constant constant in _constantsDeferredBy[import]) {
            allConstants.add(constant);
            _addImportToOutputUnitOfConstant(constant, import);
          }
        }
  
  
negative.code: 
    Set<Element> _mainElements = new Set<Element>();
  
    DeferredLoadTask(Compiler compiler) : super(compiler) {
      mainOutputUnit.imports.add(_fakeMainImport);
    }
  
    Backend get backend => compiler.backend;
  
  