https://nicobombace.com/posts/variant-and-then/
Implement monadic and_then for std::variant - Programming and Maths