First impl of TakeWhile