HeadAndTail now uses TailIterator to avoid multiple enumerations