You can now use any callable object instead of just a ReturnType_t object