| 46 | |
| 47 | template <typename F> |
| 48 | auto doubler(F fun) { |
| 49 | return [fun]<class T>(auto /* unused */, T x) -> task<T> { |
| 50 | co_return 2 * co_await lf::just(fun)(std::forward<T>(x)); |
| 51 | }; |
| 52 | } |
| 53 | |
| 54 | template <typename Sch, typename F, typename Proj = std::identity> |
| 55 | void test(Sch &&sch, F sum, Proj proj = {}) { |