anchor.diff:      var result = new List<String>();
       var child = document.documentElement;
       var childName = child.tagName.toLowerCase();
  -    var gvElem = new _GraphvizElem(_elemCounter++, child);
  +    var gvElem = new _GraphvizElem(_elemCounter++, child, 0);
       _createElemDefinition(gvElem, result);
       _createGraph(gvElem, result);
       return result;
  
positive.code:     var children = currentElement.children;
      children.forEach((child) {
        var childName = child.tagName.toLowerCase();
        var gvElem = new _GraphvizElem(_elemCounter++, child);
  
        _createElemDefinition(gvElem, result);
        result.add('${currentElement.id} -> ${gvElem.id};');
  
negative.code:     });
    }
  
    void _createElemDefinition(_GraphvizElem gvElem, List<String> result) {
      double lightness = (gvElem.depth % 10) / 10;
      String l = lightness.toStringAsFixed(1);
      result.add('${gvElem.id} [color="0, 0, $l", label="${gvElem.label}"];');
    }
  }
  
  class _GraphvizElem {
    int id;
    Element elem;
    int depth;
    _GraphvizElem(this.id, this.elem, this.depth);
  
    List<Element> get children => elem.children;
    String get label => elem.tagName.toLowerCase();
  