anchor.diff:  
                ctrl
   
  -           return items
  -                  |> List.map (fun item -> (item, newCtrl item)) })
  +           let itemToCtrl = Dictionary<_, _> ()
  +           oldItemsAndCtrls |> List.iter (fun (item, ctrl) -> itemToCtrl.[item] <- ctrl)
  +
  +           return newItems
  +                  |> List.map (fun item ->
  +                     (item,
  +                      match itemToCtrl.TryGetValue item with
  +                       | (false, _) -> newCtrl item
  +                       | (_, ctrl) -> ctrl)) })
   
         let filter =
           let filterOn (button: Button) pred =
  
positive.code: open Hopac.Extensions
  
  open System
  open System.Threading
  open System.Windows
  open System.Windows.Controls
  
negative.code: 
        let itemsAndCtrls =
          Stream.Var.tap itemsVar
          |> Stream.scanFromJob [] (fun oldItemsAndCtrls newItems -> onMain {
             let newCtrl item =
               let ctrl = ToDo.UI.ItemControl ()
  
  