anchor.diff:           Stream.MVar.updateFun modelMVar
             <| Map.add (Id.next ()) {IsCompleted = false; Header = header})
   
  +      // Filtering predicates on ToDo items.
         let isAny _ = true
         let isCompleted item = item.IsCompleted
         let isActive item = item.IsCompleted |> not
   
  +      // This stream holds the chosen ToDo item filter.  This stream is
  +      // constructed so that it starts with one initial element and then
  +      // subsequent elements are generated in response to GUI filter button
  +      // clicks.  This stream also updates the GUI as a side-effect.
         let filter =
           let filterOn (button: Button) pred =
             Stream.ofObservableOnMain button.Click
  
positive.code:       |> Stream.subscribeJob (fun allCompleted -> onMain {
           main.CompleteAll.IsChecked <- Nullable<bool> allCompleted })
  
        Stream.ofObservableOnMain main.CompleteAll.Click
        |> Stream.subscribeJob (fun _ ->
           onMain { return main.CompleteAll.IsChecked.Value } >>= fun isCompleted ->
  
negative.code:                return! Stream.MVar.updateFun modelMVar << updateItem id <| fun item ->
                         {item with Header = header} })
  
          // This shows the Remove button of a ToDo item when the mouse is over
          // the item.  The stream is carefully constructed to avoid problems due
          // to race conditions; choice streams are asynchronous and there is no
          // absolute guarantee that elements from the MouseEnter stream would
          // always precede elements from the MouseLeave stream.
          Stream.merge
            (Stream.ofObservableOnMain control.MouseEnter |> Stream.mapConst +1)
            (Stream.ofObservableOnMain control.MouseLeave |> Stream.mapConst -1)
  