anchor.diff:          let opt = { pluginPaths="" }
           let providers = loadProviders opt
           let sp = SearchProvider(providers)
  -        let state = ref { item = None }
           w.list.ItemsSource <- []
           w.searchBox.TextChanged.Add (fun x -> sp.DoSearch(w.searchBox.Text, w.list))
           w.searchBox.Text <- "case 123456"
  -        w.searchBox.PreviewKeyDown.Add(keyDown state)
  +        w.searchBox.PreviewKeyDown.Add(keyDown)
           w.Loaded.Add (loaded w)
   
           app.Run(w)
  
positive.code: //            res
  
      type State = { item: Types.IItem option }
  
      let loaded (w:MainWindow) x =
          w.searchBox.Focus() |> ignore
          ()
  
      type Action =
      | Exec of Types.IItem
      | Move of bool
      | Exit
  
      let keyDown state (args:KeyEventArgs) =
          match args.Key with
          | Key.Escape -> Application.Current.Shutdown(0)
          | Key.Up
          | Key.Enter -> match (!state).item with
                         | Some i -> printfn "ENTER"
                         | None -> ()
          | _ -> ()
  
  
  
negative.code:     open Harmful
      open System
      open FsXaml
      open Redux
  
      type Options = { pluginPaths:string }
      let loadProviders (opt:Options) : Types.IProvider list =
  