anchor.diff:    Paused -> Halted
   
     Halted -> Final (GC-ed here)
  -
  -  with state:
  -
  -  Started 
   *)
   
   /// Create a new receiver, with a queue description,
  
positive.code:           | x ->
              let entry = sprintf "could not abandon message#%s" <| (!m).MessageId
              logger.Error(entry, x) }
  
    /// An agent that implements the reactor pattern, reacting to messages.
    /// The mutually recursive function 'initial' uses the explicit functional
  
negative.code:       and halted state =
          async { 
            logger.Debug "halted"
            for pair in state.QSubs do
              closePair pair
            for pair in state.TSubs do
              closepair pair
            do! clearLocks ()
            (* TODO cancelling and disposing our state *)
            // then exit
            () }
        initial ())
  
    /// Starts the receiver which starts the consuming from the service bus
    /// and creates the queue if it doesn't exist
    member x.Start () =
      logger.InfoFormat("start called for queue '{0}'", desc)
      a.Post Start
  
    /// Stops the receiver; allowing it to start once again.
    member x.Pause () =
      logger.InfoFormat("stop called for queue '{0}'", desc)
      a.Post Pause
  
    /// Returns a message if one was added to the buffer within the timeout specified,
    /// or otherwise returns null.
  