anchor.diff:      let _ = messages.TryTake(&item, timeout.Milliseconds)
       item
   
  -  /// Tries to take an item from the list of messages
  -  member internal __.TryTake(?timeout) =
  -    let timeout = defaultArg timeout <| TimeSpan.FromMilliseconds 50.0
  -    let mutable item = null
  -    if messages.TryTake(&item, timeout.Milliseconds)
  -    then Some(item)
  -    else None
  -
  -  member __.Consume() =
  -    asyncSeq {
  -      while true do
  -        yield messages.Take() }
  +  member __.Consume() = asyncSeq { while true do yield messages.Take() }
   
     interface System.IDisposable with
       /// Cleans out all receivers and factories.
       member x.Dispose () = 
         logger.DebugFormat("dispose called for receiver on '{0}'", desc.Path)
  -      x.Stop()
  -      closeColl ()
  -      clearLocks ()
  -      messages.Dispose()
  +      a.Post Halt
   
   [<Extension>]
   type ReceiverModule =
  
positive.code:   Paused -> Halted
  
    Halted -> Final (GC-ed here)
  
    with state:
  
    Started 
  *)
  
  /// Create a new receiver, with a queue description,
  
negative.code:     
    /// creates an async workflow worker, given a message receiver client
    let worker client =
      async {
        while true do
          let! bmsg = timeout |> recv client
          if bmsg <> null then
            logger.Debug("received message")
            messages.Add bmsg
          else
            () }//logger.Debug("got null msg due to timeout receiving") }
            
    /// cleans out the message buffer and disposes all messages therein
    let clearLocks () =
  