anchor.diff:    });
   
     // TODO don't recreate objects. Move common part to separate parser
  -  Parser<List<Inline>> get image => (char('!') > link) ^ (link) {
  +  Parser<List<Inline>> get image => (char('!') > link(true)) ^ (link) {
       // Transforming link to image
       if (link[0] is InlineLink) {
         return [new InlineImage(link[0].label, link[0].target)];
  
positive.code:     return false;
    });
  
    Parser<List<Inline>> get link => new Parser((String s, Position pos) {
      ParseResult testRes = char('[').run(s, pos);
      if (!testRes.isSuccess) {
        return testRes;
  
negative.code:       return labelRes;
      }
      Inlines linkInlines = inlines.parse(labelRes.value);
      if (!allowInnerLink && _isContainsLink(linkInlines)) {
        List<Inline> resValue = [new Str('[')];
        resValue.addAll(linkInlines);
        resValue.add(new Str(']'));
  