anchor.diff:              function
               | Add -> Sync (fun m -> ())
   
  -let w = new Window()
  +let w = new ListViewWindow()
   let app = if Application.Current = null then Application() else Application.Current
   let lm = ListModel()
  -let v = ListView(Window(),lm)
  +let v = ListView(w,lm)
   let c = ListController()
   let loop = EventLoop(v, c)
   loop.Start()
  
positive.code: open System.Windows
  open FSharp.Qualia
  open System.Collections.ObjectModel
  
  (**
  Collections
  
negative.code: 
  type Events = Add
  
  
  type ListViewWindow() as x =
      inherit Window()
      let label = Label()
      let button = Button(Content="Add")
      let list = ListBox()
      do
          let sp = StackPanel()
          sp.Children.Add label |> ignore
          sp.Children.Add list |> ignore
          sp.Children.Add button |> ignore
          x.Content <- sp
      member val Label = label
      member val Button = button
      member val List = list
  
  type ItemModel() =
      member val Text = ReactiveProperty("")
  
  type ItemView(elt, m) =
      inherit View<Events, Label, ItemModel>(elt, m)
       override x.EventStreams = []
       override x.SetBindings m = elt.Content <- m.Text.Value
  type ListModel() =
      member val Items = new ObservableCollection<ItemModel>()
      
  type ListView(elt, m) =
      inherit View<Events, ListViewWindow, ListModel>(elt, m)
      override x.EventStreams = []
      override x.SetBindings m = ()
  type ListController() =
  