build a system that will evaluate arithmetic expressions. Instead of
returning a simple integer as a result, it will deliver the correct
answer along with a count of the number of operations performed during
-the calculuation. That is, the desired behavior should be like this:
+the calculation. That is, the desired behavior should be like this:
- # lift ( + ) (lift ( / ) (unit 20) (unit 2)) (lift ( * ) (unit 2) (unit 3)) 0;;
- - : int * int = (16, 3)
+ # lift ( + ) (lift ( / ) (unit 20) (unit 2))
+ (lift ( * ) (unit 2) (unit 3)) 0;;
+ - : int * int = (16, 3)
Here, `lift` is the function that uses `bind` to prepare an ordinary
arithmetic operator (such as addition `( + )`, division `( / )`, or