FutureOr<Iterable<T>> takeWhile(Predicate<T> predicate) async { return (await this).takeWhile(predicate); }