 More concretely, there is no way for the program to, say, select the first list in the two-list queue representation, if that is indeed the representation being used.This data abstraction mechanism makes the breadth-first code truly agnostic to the queue representation choice.This is in general desirable; in the present case, the queue structure can safely maintain any of the various logical invariants on which its correctness depends behind the bulletproof wall of abstraction.