This does not short circuit like the code it's replacing. Is there a some()? If not, you could use take_until or something to throw away head.