Future<Option<B>> traverseFuture<B>(Future<B> f(A a)) => fold(() => new Future.microtask(none), (a) => f(a).then(some));