anchor.diff:                          id.idText ^ ":" ^ (string_of_optiont term_to_string "" trmo))
               |> String.concat " | " ) 
   
  -// 
  +///////////////////////////////////////////////////////////////////////////////
   // decl 
  -//
  -let code_wrap s = "```\n" ^ s ^ "\n```\n"
  -
  +///////////////////////////////////////////////////////////////////////////////
  +
  +// SI: really only expecting non-TopLevelModule's. 
   let string_of_decl' d = 
     match d with 
  -  | TopLevelModule l -> "module " ^ l.str
  +  | TopLevelModule l -> "module " ^ l.str // SI: should never get here
     | Open l -> "open " ^ l.str
     | ModuleAbbrev (i, l) -> "module " ^ i.idText ^ " = " ^ l.str
     | KindAbbrev(i, _, _) -> "kind " ^ i.idText
  
positive.code:   | Pragma _ -> "pragma"
    | Fsdoc (com,_) -> com
  
  
  // A decl is documented if either:
  // - it's got a fsdoc attached to it (either at top-level or in it's subtree); or
  // - it itself is a Fsdoc
  
negative.code: - Things to fix are prefixed with SI: 
  *)
  
  ///////////////////////////////////////////////////////////////////////////////
  // lib
  ///////////////////////////////////////////////////////////////////////////////
   
  (* We store a forest-like representation of the module namespaces for index generation*)
  (* SI: not used yet *)
  type mforest =
  | Leaf of string * string
  | Branch of smap<mforest>
  
  let htree : smap<mforest> = smap_create 50
  
  // if xo=Some(x) then f x else y
  // SI: use the one in FStar.Option -- there must be one there! 
  