anchor.diff:    printTokens wr id2items " " (Some "dec") "def" model.Id model.Path model.Kind model.Tokens
     fprintf wr "</pre>\n"
     model.Body
  +  |> Seq.filter (isObsolete >> not)
     |> Seq.iter (fun item ->
        fprintf wr "<pre>"
        printSummary wr id2items true (Some "dec") "def" 0 item
  
positive.code:   fprintf wr "\n"
    if deep then
      item.Body
      |> Seq.iter (printSummary wr id2items deep inSection toSection drop)
    else
      if not (List.exists (fun item -> Option.isSome item.Id) item.Body) then
  
negative.code:             nest path docs attrs "static member" id i tokens
            | T("and" as kind)::T id::([]|T"<"::_|T":>"::_|T"="::_|T"with"::_) ->
              nest path docs attrs "type" id i tokens
            | T("val" as kind)::T"mutable"::T id::T":"::_
            | T("val" as kind)::T"("::T id::T")"::T":"::_
            | T("val" as kind)::T"(|"::T id::T"|)"::T":"::_
            | T("module"|"namespace" as kind)::T id::[T"="]
            | T("abstract"|"default"|"member"|"val" as kind)::T id::(T":"::_|T"<"::_)
            | T("type" as kind)::T id::([]|T"<"::_|T":>"::_|T"="::_|T"with"::_)
  