anchor.diff:                          System.Threading.Thread.CurrentThread.CurrentUICulture <- culture
   
                           let newState = 
  +                         try
                               match msg with
                               | StartBackgroundOp build -> 
                                   Debug.WriteLine("Reactor: --> start background, remaining {0}, mem {1}, gc2 {2}", inbox.CurrentQueueLength, GC.GetTotalMemory(false)/1000000L, GC.CollectionCount(2))
  
positive.code:                             | FinishBackgroundOp channel -> 
                                  Debug.WriteLine("Reactor: --> finish background, remaining {0}, mem {1}, gc2 {2}", inbox.CurrentQueueLength, GC.GetTotalMemory(false)/1000000L, GC.CollectionCount(2))
                                  HandleFinishBackgroundO inbox channel state
  
                          return! loop newState
                        }
  
negative.code:                 let! ct = Async.CancellationToken
                  let resultCell = AsyncUtil.AsyncResultCell<_>()
                  r.EnqueueOpPrim(desc, ct,
                      op=(fun () ->
                          let result =
                              try
                                  f ct |> AsyncUtil.AsyncOk
                              with
                              |   e -> e |> AsyncUtil.AsyncException
                          resultCell.RegisterResult(result)),
                       ccont=(fun () -> resultCell.RegisterResult (AsyncUtil.AsyncCanceled(OperationCanceledException())) )
  
                  )
                  return! resultCell.AsyncResult 
  