I think I'd rather you produce an IndexedSeq, as otherwise we might have silent slowdowns after calling split. Maybe append everything to an arraybugger instead of being tail recursive?