added foldLeftWhile
changed foldLeftWhile semantics