As a user I want that the reverse function of the binary operators only returns correct results.
This is e.g. a problem for Value::pow which calls log. This leads to e.g. -infinity which we consider an invalid (or at least useless) value in this case.
We have to check manually if the input values of the math functions are correct and if they are not return nullopt.
Alternatively we can provide helpers that check if (after calling the C math functions) any of the error flags are set. See https://en.cppreference.com/w/c/numeric/fenv/FE_exceptions