ExceptionWrapper::with_exception variant, deducing exception type from functor type