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:         match tn.Tag with
          | :? Watch as w -> Watch(w)
          | _ -> Archive
  
      static let isWatch (tn:TreeNode) =
          match tn with
          | Watch _ -> true
          | _ -> false
  
      static let isArchive (tn:TreeNode) =
          match tn with
          | Archive -> true
          | _ -> false
  
      ///The text used for constructing "dummy" TreeNodes used as a place-holder until childnodes are 
      ///loaded lazily.
  