anchor.diff:                      } |> Async.RunSynchronously))
   
       do sub.Subscribe(_toKey("paused") |> keyToChannel,
  -        (fun c v ->
  +        (fun _ v ->
               do
                   match v |> string with
                   | "paused" -> this.emitQueueEvent(Paused) |> Async.RunSynchronously
  
positive.code:     Empty: IEvent<OxenQueueEventDelegate<'a>, OxenQueueEvent<'a>>
      NewJob: IEvent<OxenNewJobEventDelegate, OxenNewJobEvent>
  }
  /// [omit]
  and LockRenewer<'a> (job:Job<'a>, token:Guid) =
      static let logger = LogManager.getLogger()
  
negative.code:         Failed = onFailed
          NewJob = onNewJob
      }
  
      /// wait for a specfic job event to happen
      member x.jobAwaiter eventType predicate timeout =
          async {
              let agent = MailboxProcessor<EventAwaiterMessage<'a>>.Start(awaitJobAgent)
  
              match eventType with 
              | Completed -> this.on.Completed.Add(fun e -> agent.Post (Event e))
              | Failed -> this.on.Failed.Add(fun e -> agent.Post(Event e))
              | Progress -> this.on.Progress.Add(fun e -> agent.Post(Event e))
              | _ -> failwith "Not a job event!"
              
              return! agent.PostAndAsyncReply  ((fun channel -> WaitFor (predicate, channel)), timeout)
          }
  
      //Internals
      member internal x.toKey kind = _toKey kind
  