Task<Tuple2<A, B>> both<B>(Task<B> that) => Task(() => Future.wait([_run(), that._run()]) .then((value) => tuple2(cast(value[0]), cast(value[1]))) );