anchor.diff:                  let invokeMeth = (typeof<FuncDelegate<'T>>).GetMethod("Invoke", BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.Instance)
                   System.Delegate.CreateDelegate(typeof<'Delegate>, obj, invokeMeth) :?> 'Delegate
   
  +        let QueueAsync cancellationToken cont econt ccont computation =
  +            let trampolineHolder = new TrampolineHolder()
  +            trampolineHolder.QueueWorkItemWithTrampoline (fun () -> 
  +                let ctxt = CreateAsyncActivation cancellationToken trampolineHolder cont econt ccont
  +                computation.Invoke ctxt)
  +
           /// Run the asynchronous workflow and wait for its result.
           let RunSynchronouslyInAnotherThread (token:CancellationToken,computation,timeout) =
               let token,innerCTS = 
  
positive.code:                                             // calls the callback _before_ the timer object has been recorded anywhere. This makes it difficult to dispose the
                                              // timer in this situation. In this case we just let the timer be collected by finalization.
                                              match !timer with
                                              |  None -> ()
                                              |  Some t -> t.Dispose()
                                              // Now we're done, so call the continuation
                                              aux.trampolineHolder.Execute (fun () -> savedCont()) |> unfake),
                                       null, dueTime=millisecondsDueTime, period = -1) |> Some
                  with exn -> 
                      if latch.Enter() then 
  
negative.code:                                                             lock rwh (fun () -> rwh.Value.Value.Unregister(null) |> ignore)
                                                              rwh := None
                                                              registration.Dispose()
                                                              aux.trampolineHolder.ExecuteWithTrampoline (fun () -> savedCont (not timeOut)) |> unfake),
                                             state=null,
                                             millisecondsTimeOutInterval=millisecondsTimeout,
                                             executeOnlyOnce=true));
  