Conveyor<F, O2> foldWhile<O2>(O2 z, Function2<O2, O, O2> f, Function1<O2, bool> p) => pipe(Pipe.scanWhile(z, f, p)).lastOr(z);