..and the sample implementation uses (error "Empty queue") - but it would be nice if the library exported a predicate, empty-queue-error? that discriminates the appropriate exception (required to be) raised by queue-front, queue-back, queue-remove-front!, queue-remove-back!.
A small clarification would be nice when starting to mention queue-append, queue-concatenate, queue-for-each, that front-to-back is the relevant order. All the prior api docs make the natural order seem ambiguous since operations can be done to either end. I realize it's clearer when one considers the expected implementation.