anchor.diff:          let waitForQueueToFinish (queue:Queue<_>) = 
               let rec wait () = 
                   async {
  -                    do! queue.on.Completed |> Async.AwaitEvent |> Async.Ignore
  +                    do! Async.SwitchToNewThread ()
                       let! waiting = queue.getWaiting()
                       let! active = queue.getActive()
                       match waiting.Length + active.Length with
  
positive.code:                     })
  
                  let! job = queue.add({value = "test"});
                  do! waitForQueueToFinish queue
                  do! queue.on.Completed |> Async.AwaitEvent |> Async.Ignore
                  let! completed = job.isCompleted 
                  completed |> should be True
  
negative.code:             wait ()
  
          let waitForJobsToArrive (queue:Queue<_>) = 
              let rec wait () =
                  async {
                      do! Async.SwitchToNewThread ()
                      let! count = queue.count()
                      match count with
                      | x when x = 0L -> return! wait ()
  