anchor.diff:    >> String.concat "-"
   
   let ignoredLine = Regex "^(|#.*|open .*|//|//[^/#].*)$"
  +
  +let isObsolete (item: Item) =
  +  item.Attr
  +  |> List.exists ^ List.exists (fst >> (=) "Obsolete")
   
   let rec itemize ls =
     let rec outside indent path items docs attrs = function
  
positive.code:     fprintf wr "\n"
      if deep then
        item.Body
        |> Seq.filter (isObsolete >> not)
        |> Seq.iter ^ printSummary wr id2items deep inSection toSection drop
      else
        if List.forall (fun item -> Option.isNone item.Id) item.Body then
  
negative.code:                         Indent = i
                          Tokens = tokens
                          Body = body}
              let items = if isObsolete item then items else item::items
              outside indent path items [] [] lines
           let tokens = summarize text
           match tokens with
            | T("namespace"|"module" as kind)::Id (id, _, path, []) ->
  