anchor.diff:                  treeCol.SetCellDataFunc(padTreeView.TextRenderer, new TreeCellDataFunc(setCellText))
   
                   padTreeView.AppendColumn treeCol |> ignore
  -                padTreeView.Realized.Add(fun _ -> treeViewRealized <- true; refillTree |> ignore)
  +                padTreeView.Realized.Add(fun _ -> refillTree |> ignore)
                   padTreeView.Selection.Changed.Subscribe(fun _ -> jumpToDeclaration false) |> ignore
                   padTreeView.RowActivated.Subscribe(fun _ -> jumpToDeclaration true) |> ignore
   
  
positive.code:     inherit TextEditorExtension()
      let mutable treeView : PadTreeView option = None
      let mutable refreshingOutline : bool = false
      let mutable treeViewRealized : bool = false
  
      let refillTree() =
          match treeView with
          | Some(treeView) ->
              if treeViewRealized then
                  let ast = maybe { let! context = x.DocumentContext |> Option.ofNull
                                    let! parsedDocument = context.ParsedDocument |> Option.ofNull
                                    let! ast = parsedDocument.Ast |> Option.tryCast<ParseAndCheckResults>
                                    return ast }
  
                  DispatchService.AssertGuiThread()
                  Gdk.Threads.Enter()
                  ast |> Option.iter (fun ast ->
                      let treeStore = treeView.Model :?> TreeStore
                      treeStore.Clear()
  
negative.code:         member x.ReleaseOutlineWidget() =
              treeView |> Option.iter(fun tv -> Option.tryCast<ScrolledWindow>(tv.Parent) 
                                                |> Option.iter (fun sw -> sw.Destroy())
                                                let treeStore = tv.Model :?> TreeStore
                                                if treeStore <> null then
                                                    treeStore.Dispose()
  
                                                treeView <- None)
  