anchor.diff:      
       //    IdeApp.Workbench.ActiveDocument <> null && IdeApp.Workbench.ActiveDocument.Name = x.DocumentContext.Name
       member private x.UpdateDocumentOutline _ = 
  +        if not refreshingOutline then
  +            refreshingOutline <- true
  +            timerId <- GLib.Timeout.Add (3000u, (fun _ -> x.refillTree))
  +
  +    member private x.refillTree = 
  +
           let ast = maybe { let! context = x.DocumentContext |> Option.ofNull
                             let! parsedDocument = context.ParsedDocument |> Option.ofNull
                             let! ast = parsedDocument.Ast |> Option.tryCast<ParseAndCheckResults>
  
positive.code: 
                  padTreeView.AppendColumn treeCol |> ignore
                  padTreeView.HeadersVisible <- true
                  //padTreeView.Realized.Add refillTree
                  padTreeView.Selection.Changed.Subscribe(fun _ -> jumpToDeclaration false) |> ignore
                  padTreeView.RowActivated.Subscribe(fun _ -> jumpToDeclaration true) |> ignore
  
                  let sw = new CompactScrolledWindow()
  //                padTreeView.Model <- treeStore
                  sw.Add padTreeView
                  sw.ShowAll()
                  sw :> Widget
  
negative.code:         ast |> Option.iter (fun ast -> 
                     match treeView with
                     | Some(treeView) -> 
                         if treeView.Model = null || not treeView.IsRealized then
                             false
                         let treeStore = treeView.Model :?> TreeStore
                         treeStore.Clear()
                         let toplevel = ast.GetNavigationItems()
  