(T ok, E err) に対して { *ok, *err } という操作が要求されりゅ using vec_iter = typename std::vector<int>::iterator; std::vector<int> vec{1, 2, 3}; mut_result<vec_iter, vec_iter> res(success<vec_iter>{vec.begin()}); auto indirect = res.indirect(); // indirect: `mut_result<int&, int&>` auto& ref = indirect.unwrap(); ref = 42;