anchor.diff:              if args.Button = MouseButtons.Right then
                   this.SelectedNode <- this.GetNodeAt(args.X, args.Y)
   
  -        this.AfterSelect.Add <| fun args ->
  -            afterSelect args.Node
  -
  -        this.AfterExpand.Add <| fun args -> 
  -            afterExpand args.Node
  +        this.AfterSelect.Add (fun args -> afterSelect args.Node)
  +        this.AfterExpand.Add (fun args -> afterExpand args.Node)
       with
           member private this.UpdateWatch(tn:TreeNode, value, ty) =
               Control.update this <| fun () ->
  
positive.code:                 this.BeginUpdate()
                  node.Nodes.Clear() //clear dummy node
                  let createWatchTreeNode = createWatchTreeNode context
                  let asyncNodes = 
                      [| for (tn, a) in watch.Children |> Seq.map createWatchTreeNode do
                          node.Nodes.Add(tn) |> ignore
                          match a with
                          | Some(a) -> yield a
  
negative.code:         ///Take archival snap shot of all current watches using the given label.
          member this.Archive(label: string) =
              Control.update this <| fun () ->
                  let nodesToArchiveCloned = [| 
                      for tn in this.Nodes do
                          if tn |> isWatch then
                              yield tn.Clone() :?> TreeNode |]
              
                  this.ClearAll isWatch
  
                  let archiveNode = TreeNode(Text = label)
                  archiveNode.Nodes.AddRange(nodesToArchiveCloned)
  