anchor.diff:          member x.ReleaseOutlineWidget() =
               treeView |> Option.iter(fun tv -> Option.tryCast<ScrolledWindow>(tv.Parent) 
                                                 |> Option.iter (fun sw -> sw.Destroy())
  -                                              tv.Destroy())
  +                                              let treeStore = tv.Model :?> TreeStore
  +                                              if treeStore <> null then
  +                                                  treeStore.Dispose()
  +
  +                                              treeView <- None)
  
positive.code: 
                      treeView.ExpandAll())
                  Gdk.Threads.Leave()
          | None -> ()
  
          refreshingOutline <- false
          false
  
      let updateDocumentOutline _ =
        if not refreshingOutline then
          refreshingOutline <- true
          GLib.Timeout.Add (1000u, (fun _ -> refillTree())) |> ignore
  
      override x.Initialize() =
          base.Initialize()
          x.DocumentContext.DocumentParsed.Add(updateDocumentOutline)
  
      override x.IsValidInContext context =
          LanguageBindingService.GetBindingPerFileName (context.Name) <> null;
  
negative.code:     inherit TextEditorExtension()
      let mutable treeView : PadTreeView option = None
      let mutable refreshingOutline : bool = false
      let mutable timerId : uint32 = 0u
      let mutable handler : IDisposable = null
  
      let refillTree() =
          match treeView with
          | Some(treeView) ->
              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()
              refreshingOutline <- false
  
              if treeView.IsRealized then
                  ast |> Option.iter (fun ast ->
                      let treeStore = treeView.Model :?> TreeStore
                      treeStore.Clear()
  