anchor.diff:          Async.StartAsTask (loop [] iframeRect) |> ignore
   
       let testing () =
  -        //failing attempt to get it to load native dlls when running in F# Interactive
  -        System.Environment.CurrentDirectory <- @"C:\repos\oss\abbeyroad\AbbeyRoad\bin\Debug"
  +        //failing attempts to get it to load native dlls when running in F# Interactive
  +        //System.Environment.CurrentDirectory <- @"C:\repos\oss\abbeyroad\AbbeyRoad\bin\Debug\dll\x64"        
  +        //DevTools.LoadLibrary(@"C:\repos\oss\abbeyroad\packages\OpenCvSharp3-AnyCPU\NativeDlls\x64\OpenCvSharpExtern.dll") |> ignore
  +        //DevTools.LoadLibrary(@"C:\repos\oss\abbeyroad\packages\OpenCvSharp3-AnyCPU\NativeDlls\x86\OpenCvSharpExtern.dll") |> ignore
   
           BrowserAutomation.start ()
           let iframeRect = BrowserAutomation.iframeRect()
           let screenshot = BrowserAutomation.screenshot()
           let webcamImage = ImageProcessing.cropWebcamImage screenshot iframeRect
           let x = ImageProcessing.createMaskedPolygon webcamImage (ImageProcessing.keys.[0]).Points
  -        WinForms.showMatInWinForm(x)        
  +        DevTools.showMatInWinForm(x)        
   
       [<EntryPoint>]
       let main argv = 
  
positive.code:     | White6
      | Black7        
  
  module WinForms =
      open System.Windows.Forms
  
      let showMatInWinForm mat =
          let pictureBox =
  
negative.code:         let form = new Form(Width = 800, Height = 600)
          form.Controls.Add(pictureBox)
          System.Windows.Forms.Application.Run(form)
       
      [<DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)>]
      extern IntPtr LoadLibrary(string lpFileName);
  
  //FIXME lots of OpenCV types are IDisposable, possibly eats memory at the moment
  module ImageProcessing =   
      open Microsoft.FSharp.Reflection
      open OpenCvSharp    
  
      type Key = { Label: Note; Points: Point[] }
  
  