transformers tweak
[lambda.git] / monad_transformers.mdwn
index b40661a..086a2ff 100644 (file)
@@ -306,8 +306,8 @@ Our Tree monad has a corresponding TreeT transformer. Simplified, its implementa
                                  reader_unit (Node(ls, rs))))
                in loop us);;
 
                                  reader_unit (Node(ls, rs))))
                in loop us);;
 
-       let tree_reader_elevate (w : 'a reader) : 'a tree_reader =
-               reader_bind w (fun a -> reader_unit (Leaf a))
+       let tree_reader_elevate (inner : 'a reader) : 'a tree_reader =
+               reader_bind inner (fun a -> reader_unit (Leaf a))
 
 Recall our earlier definition of `tree_monadize`, specialized for the Reader monad:
 
 
 Recall our earlier definition of `tree_monadize`, specialized for the Reader monad:
 
@@ -317,9 +317,9 @@ Recall our earlier definition of `tree_monadize`, specialized for the Reader mon
                        (* the next line is equivalent to: tree_reader_elevate (f a) *)
                reader_bind (f a) (fun b -> reader_unit (Leaf b))
            | Node (l, r) ->
                        (* the next line is equivalent to: tree_reader_elevate (f a) *)
                reader_bind (f a) (fun b -> reader_unit (Leaf b))
            | Node (l, r) ->
-               reader_bind (tree_monadize f l) (fun l' ->
-                 reader_bind (tree_monadize f r) (fun r' ->
-                   reader_unit (Node (l', r'))));;
+               reader_bind (tree_monadize f l) (fun ls ->
+                 reader_bind (tree_monadize f r) (fun rs ->
+                   reader_unit (Node (ls, rs))));;
 
 We rendered the result type here as `'b tree reader`, as we did in our earlier discussion, but as we can see from the above implementation of TreeT(Reader), that's the type of an `'b tree_reader`, that is, of a layered box consisting of TreeT packaging wrapped around an inner Reader box.
 
 
 We rendered the result type here as `'b tree reader`, as we did in our earlier discussion, but as we can see from the above implementation of TreeT(Reader), that's the type of an `'b tree_reader`, that is, of a layered box consisting of TreeT packaging wrapped around an inner Reader box.