anchor.diff:              (isPara(nodes[i + 1]) || isBlockquote(nodes[i + 1]))) {
             Element p = nodes[++i];
             String str = TextOutputVisitor.printText(p);
  -          if (!str.contains('|') && !str.contains('``')) str = collapseWhitespace(str);
  +          if (!str.contains('|') && !str.contains('``'))
  +            str = collapseWhitespace(str);
             docs = '${docs}\n\n${str}';
           }
   
  
positive.code:       gen.writeStatement('int get hashCode => id.hashCode;');
        gen.writeln();
  
        gen.writeStatement('operator==(other) => other is ${name} && id == other.id;');
        gen.writeln();
      }
  
      // toString()
      Iterable<TypeField> toStringFields = getAllFields().where((f) => !f.optional);
      if (toStringFields.length <= 7) {
        String properties = toStringFields.map((TypeField f) =>
            "${f.generatableName}: \${${f.generatableName}}").join(', ');
        if (properties.length > 60) {
          int index = properties.indexOf(', ', 55);
          if (index != -1) {
            properties = properties.substring(0, index + 2) +
                "' //\n'" + properties.substring(index + 2);
          }
          gen.writeln("String toString() => '[${name} ' //\n'${properties}]';");
        } else {
  
negative.code:       } else if (hasOptionalArgs) {
          gen.writeStatement('{');
          gen.write('Map m = {');
          gen.write(args
              .where((MethodArg a) => !a.optional)
              .map((arg) => "'${arg.name}': ${arg.name}")
              .join(', '));
          gen.writeln('};');
          args.where((MethodArg a) => a.optional).forEach((MethodArg arg) {
            String valueRef = arg.name;
            gen.writeln(
                "if (${arg.name} != null) m['${arg.name}'] = ${valueRef};");
          });
          gen.writeStatement("return _call('${name}', m);");
          gen.writeStatement('}');
  