learning and exploring so not authortive (and could easily be very wrong) - it seems takeWhile on sequence pushes the predicate into a TakeWhileSequence class so its only inlined as far as the constructor parameter so @ returns won't work. thats what crossinline marks