## 🐛 Bug ``` Int* x = new Int(1); Int* y = new Int(1); Val* z = mul(x, y); z->isOneInt(); <-- An exception is thrown here ``` An exception is thrown as: ``` C++ exception with description "bad optional access" thrown in the test body. ``` `Val::isZeroInt` has the same problem.