writing type deduction in generic/run.hpp in a way that some compilers can't complain that the type is incomplete