anchor.diff:                |> ignore) })
   
         Stream.MVar.tap modelMVar
  +      |> Stream.keepPreceding1
         |> Stream.subscribeJob (fun model -> onMain {
            let n = Map.toSeq model |> Seq.filter (snd >> isActive) |> Seq.length
            main.NumberOfItems.Text <- sprintf "%d items left" n })
   
         Stream.MVar.tap modelMVar
  +      |> Stream.keepPreceding1
         |> Stream.subscribeJob (fun model -> onMain {
            let n = Map.toSeq model |> Seq.filter (snd >> isCompleted) |> Seq.length
            main.ClearCompleted.Visibility <-
  
positive.code: 
        Stream.MVar.tap modelMVar
        |> Stream.combineLatest filter
        |> Stream.subscribeJob (fun (filter, model) -> onMain {
           main.Items.Children.Clear ()
           model
  
negative.code:           (Stream.ofObservableOnMain control.MouseEnter |> Stream.mapConst +1)
            (Stream.ofObservableOnMain control.MouseLeave |> Stream.mapConst -1)
          |> Stream.scanFromFun 0 (+)
          |> Stream.keepPreceding1
          |> Stream.subscribeJob (fun n -> onMain {
             control.Remove.Visibility <-
               if 0 < n then Visibility.Visible else Visibility.Hidden })
  