the calculation. That is, the desired behavior should be like this:
# lift ( + ) (lift ( / ) (unit 20) (unit 2))
- (lift ( * ) (unit 2) (unit 3)) 0;;
+ (lift ( * ) (unit 2) (unit 3)) 0;;
- : int * int = (16, 3)
Here, `lift` is the function that uses `bind` to prepare an ordinary
your solution).
You'll need to define a computation monad type, unit, bind, and lift.
-We encourage you to consider this hint: [[Assignment 6 Hint 1]].
+We encourage you to consider this hint: [[hints/Assignment 6 Hint 1]].
2. Prove that your monad satisfies the monad laws. First, give
examples illustrating specific cases in which the monad laws are