anchor.diff:  abstract class BlockSyntax {
     /// Gets the collection of built-in block parsers. To turn a series of lines
     /// into blocks, each of these will be tried in turn. Order matters here.
  -  static List<BlockSyntax> get syntaxes {
  -    // Lazy initialize.
  -    if (_syntaxes == null) {
  -      _syntaxes = [
  -          new EmptyBlockSyntax(),
  -          new BlockHtmlSyntax(),
  -          new SetextHeaderSyntax(),
  -          new HeaderSyntax(),
  -          new CodeBlockSyntax(),
  -          new FencedCodeBlockSyntax(),
  -          new BlockquoteSyntax(),
  -          new HorizontalRuleSyntax(),
  -          new UnorderedListSyntax(),
  -          new OrderedListSyntax(),
  -          new ParagraphSyntax()
  -        ];
  -    }
  -
  -    return _syntaxes;
  -  }
  -
  -  static List<BlockSyntax> _syntaxes;
  +  static const List<BlockSyntax> syntaxes = const[
  +    const EmptyBlockSyntax(),
  +    const BlockHtmlSyntax(),
  +    const SetextHeaderSyntax(),
  +    const HeaderSyntax(),
  +    const CodeBlockSyntax(),
  +    const FencedCodeBlockSyntax(),
  +    const BlockquoteSyntax(),
  +    const HorizontalRuleSyntax(),
  +    const UnorderedListSyntax(),
  +    const OrderedListSyntax(),
  +    const ParagraphSyntax()
  +  ];
  +
  +  const BlockSyntax();
   
     /// Gets the regex used to identify the beginning of this block, if any.
     RegExp get pattern => null;
  
positive.code: class UnorderedListSyntax extends ListSyntax {
    RegExp get pattern => _RE_UL;
    String get listTag => 'ul';
  }
  
  /// Parses ordered lists.
  class OrderedListSyntax extends ListSyntax {
    RegExp get pattern => _RE_OL;
    String get listTag => 'ol';
  }
  
  /// Parses paragraphs of regular text.
  class ParagraphSyntax extends BlockSyntax {
    bool get canEndBlock => false;
  
    bool canParse(BlockParser parser) => true;
  
  
negative.code: 
    bool get canEndBlock => false;
  
    const BlockHtmlSyntax();
  
    Node parse(BlockParser parser) {
      final childLines = [];
  
  