FIFO helper for {token, prompt} pairs awaiting dispatch.
Thin wrapper over :queue with the shape every queueing strategy
reaches for: enqueue when busy, pop when going idle.
Strategies using this helper typically keep a queue: Queue.new()
field and call enqueue/3 in handle_tell/ask when they can't
dispatch immediately, then pop/1 in handle_response (or similar)
when they free up.
Summary
Functions
Pop the next {token, prompt} pair.
Types
Functions
@spec len(t()) :: non_neg_integer()
@spec new() :: t()
Pop the next {token, prompt} pair.
Returns {:ok, {token, prompt}, rest} if the queue was non-empty,
:empty if it was empty.