Task<Option<B>> traverseTask<B>(Task<B> f(A a)) => fold(() => Task.value(none()), (a) => f(a).map(some));