anchor.diff:      /// </summary>
       member internal this.WaitResultAsync(resultId : string) : Async<bool> = 
           //Debug.Print("Getting: " + resultId)
  -        let cached = resultsCache.Get(resultId)
  +        let cached = cache.Get(resultsKey + ":" + resultId)
           if cached <> null then
               async { return true }
           else 
  
positive.code:                     if !signaled then // if signaled then result definitely exists
                          return true
                      else // opportunistic retry "what if we lost a message for some reason"
                          let cachedResult = resultsCache.Get(resultId)
                          let result =
                              if cachedResult <> null then true
                              else
  
negative.code:                 async {
                      let retryInterval = if this.ResultTimeout > 0 then this.ResultTimeout / 3 else 5000 // arbitrary large number
                      let! listenerTask = Async.AwaitWaitHandle(listener.WaitHandle, retryInterval) |> Async.StartChild
                      let hasCachedId = cache.Get(resultsKey + ":id:" + resultId) <> null
                      let signaled = ref false
                      if not hasCachedId then
                          let! signal = listenerTask
  