But `popFront()` changes an internal state with visible, externaleffects: it changes `front` return value and in the end, it will affect `empty` return value. So no, I don't consider `popFront` to be pure.
That's actually not a reason for them to be impure (see e.g. http://klickverbot.at/blog/2012/05/purity-in-d#pure_member_functions for my attempt on explaining that).
David
