 
   /// Get a pointer to the first `Waiter` for an unresolved `Deferred`.
   /// `state` must have been read with `.acquire` memory ordering in order
-  /// to safely see all the changes from the thread last enqueued a `Waiter`.
+  /// to safely see all the changes from the thread that last enqueued a `Waiter`.
 
   private func waiterQueue(from state: Int) -> UnsafeMutablePointer<Waiter<Value>>?
   {

      repeat {
        waiter.pointee.next = waiterQueue(from: state)
        let newState = Int(bitPattern: waiter) | state.state
        if CAtomicsCompareAndExchange(deferredState, &state, newState, .weak, .release, .relaxed)
        { // waiter is now enqueued; it will be deallocated at a later time by notifyWaiters()
          return

      repeat {
        waiter.pointee.next = waiterQueue(from: state)
        let newState = Int(bitPattern: waiter) | state.state
        // write to `deferredState` with memory_order_release.
        // this means that this write is in the release sequence of all previous writes.
        // a subsequent read-from `deferredState` will therefore synchronize-with all previous writes.
        // this matters for the `resolve(_:)` function, which operates on the queue of `Waiter` instances.
        if CAtomicsCompareAndExchange(deferredState, &state, newState, .weak, .release, .relaxed)
        { // waiter is now enqueued; it will be deallocated at a later time by notifyWaiters()
          return
