anchor.diff:      let skippedRuler = ref false
   
       override __.WriteBlock (block, isOpening, isClosing, ignoreChildNodes) =
  -        let skipCode = not (!skippedCode) && block.Tag = BlockTag.IndentedCode
  -        let skipRuler = not (!skippedRuler) && block.Tag = BlockTag.HorizontalRuler
  +        let skipCode = not !skippedCode && block.Tag = BlockTag.IndentedCode
  +        let skipRuler = not !skippedRuler && block.Tag = BlockTag.HorizontalRuler
           match skipCode, skipRuler with
           | (true, _) -> skippedCode := true; ()
           | (_, true) -> skippedRuler := true; ()
  
positive.code:     | None -> Map.empty
      | Some (b) ->
          let meta = b.Block.StringContent.ToString ()
          meta.Split('\n')
          |> Seq.map (fun s -> s.Trim())
          |> Seq.filter (not << String.IsNullOrEmpty)
          |> Seq.map (fun s ->
              match s.Split(':') with
              | [| key; value |] -> key.Trim(), value.Trim()
              | _ -> failwithf "Cannot parse metadata line %A" s)
          |> Map.ofSeq
  
  
negative.code: 
  let getParseSettings =
      let settings = CommonMarkSettings.Default.Clone ()
      settings.OutputDelegate <- fun doc output settings -> Formatter(output, settings).WriteDocument doc
      settings
  
  let processReader (fileName : string) (reader : TextReader)  =
  