anchor.diff:        b = b.toLowerCase();
         return a.compareTo(b);
       });
  -    buffer.write('List "listName" containing ${itemList.length} entries:');
  +    buffer.write('List "$listName" containing ${itemList.length} entries:');
       buffer.write('<ul>');
       for (String member in itemList) {
  -      buffer.write('<li>');
  -      buffer.write(member);
  -      buffer.write('</li>');
  +      _writeListItem(buffer, () {
  +        buffer.write(member);
  +      });
       }
       buffer.write('</ul>');
     }
  
positive.code:       buffer.write('List containing ${value.length} entries');
        buffer.write('<ul>');
        for (var entry in value) {
          buffer.write('<li>');
          _writeValueAsHtml(buffer, entry, linkParameters);
          buffer.write('</li>');
        }
        buffer.write('</ul>');
      } else if (value is AstNode) {
  
negative.code:       buffer.write('<i>$link</i>');
      } else if (value is UsedLocalElements) {
        buffer.write('<ul>');
        _writeListItem(buffer, () {
          HashSet<Element> elements = value.elements;
          buffer.write('List "elements" containing ${elements.length} entries');
          buffer.write('<ul>');
          for (Element element in elements) {
            _writeListItem(buffer, () {
              String elementStr = HTML_ESCAPE.convert(element.toString());
              buffer.write('<i>${element.runtimeType}</i>  $elementStr');
            });
          }
          buffer.write('</ul>');
        });
        _writeListItem(buffer, () {
          _writeListOfStrings(buffer, 'members', value.members);
        });
        _writeListItem(buffer, () {
          _writeListOfStrings(buffer, 'readMembers', value.readMembers);
        });
        buffer.write('</ul>');
      } else {
        buffer.write(HTML_ESCAPE.convert(value.toString()));
  