anchor.diff:  open System.IO
   open Plainion.IronDoc.Parsing
   open Plainion.IronDoc.Rendering
  -open System.Threading
   open System
  +open System.Diagnostics
   
   let generateTypeDoc writer t = 
       renderType writer t
  +
  +type Tree =
  +  | Tree of string * Tree list
   
   /// Root folder per assembly.
   /// Sub-folder per namespace
  
positive.code: /// Summary page per namespace listing all types
  /// (with readme.md from source folder at top if available)    
  let generateAssemblyDoc outputFolder (assembly:DAssembly) = 
      let assemblyFolder = Path.Combine(outputFolder,assembly.name)
  
      if Directory.Exists assemblyFolder then 
          Directory.Delete(assemblyFolder, true)
  
      Directory.CreateDirectory(assemblyFolder) |> ignore
      
      // seems that dir is not instantly created
      Thread.Sleep(50)
  
      let namespaces =
          assembly.assembly.GetTypes()
          |> Seq.filter (fun t -> t.IsPublic)
          |> Seq.map (createDType assembly)
          |> Seq.groupBy(fun x -> x.nameSpace )
          |> List.ofSeq
  
      let rootNs = 
          namespaces
          |> Seq.map fst
          |> Seq.sortBy(fun x -> x.Length)
          |> Seq.head
  
      let renderNameSpace (ns:string,types) =
          let folder = 
              if ns.StartsWith(rootNs, StringComparison.Ordinal) then 
                  let subNs = ns.Substring(rootNs.Length).Trim('.')
                  Path.Combine(assemblyFolder, subNs)
              else 
                  assemblyFolder
  
          if Directory.Exists folder |> not then 
              Directory.CreateDirectory(folder) |> ignore
  
          let types = types |> List.ofSeq
  
          // render individual type files
          types
  
negative.code:         types
          |> Seq.iter(fun x -> writer.WriteLine( sprintf "* [%s](%s)" x.name (x.name + ".md") ))
  
          if children.IsEmpty |> not then
              renderHeadline writer 2 "Namespaces"
              writer.WriteLine()
  
              children
              |> Seq.iter(fun child -> 
                  let (Tree(name, children)) = child
                  writer.WriteLine( sprintf "* [%s.%s](%s/ReadMe.md)" fullName name name )
                  renderTree fullPath child)
  
      nsTrees
      |> Seq.iter (renderTree [])
  
      
  let generateAssemblyFileDoc outputFolder assemblyFile  = 
  