anchor.diff:      throw new UnimplementedError(block.toString());
     }).join(tight ? "" : "\n");
   
  -  String writeHorizontalRule(HorizontalRule hRule) {
  +  String writeHorizontalRule(HorizontalRule hRule, [String unorderedListChar = "*"]) {
  +    if (unorderedListChar == "-") {
  +      return '*' * 10;
  +    }
       return '-' * 10;
     }
   
  
positive.code:   String writeHeader(Header header) {
      String inlines = writeInlines(header.contents);
      if (header is SetextHeader && header.level == 2) {
        return inlines + "\n" + (header.level == 1 ? '=' : '-') * inlines.length;
      }
      return "#" * header.level + " " + inlines + "\n";
    }
  
negative.code:     String inlines = writeInlines(link.label);
      if (link is InlineLink) {
        return '[${inlines}](${_writeTarget(link.target)})';
      }
      if (link is ReferenceLink) {
        _references[link.reference] = link.target;
        return '[${inlines}]' + (inlines.toUpperCase() != link.reference.toUpperCase() ? '[${link.reference}]' : '');
      }
  
      // Autolink
      if (link.label.length > 0 && link.label[0] is Str) {
        return '<' + link.label[0].contents + '>';
      }
      return '<' + link.target.link + '>';
    }
  
    String writeImage(Image image) {
      return '![${writeInlines(image.label)}](${_writeTarget(image.target)})';
    }
  
    String _writeReferences() {
  