From e948c27044f69962483a6c62a8568b84acd5be85 Mon Sep 17 00:00:00 2001 From: Jim Pryor Date: Mon, 13 Dec 2010 01:28:25 -0500 Subject: [PATCH] transformers tweak Signed-off-by: Jim Pryor --- monad_transformers.mdwn | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/monad_transformers.mdwn b/monad_transformers.mdwn index b40661a8..086a2ffc 100644 --- a/monad_transformers.mdwn +++ b/monad_transformers.mdwn @@ -306,8 +306,8 @@ Our Tree monad has a corresponding TreeT transformer. Simplified, its implementa 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: @@ -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) -> - 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. -- 2.11.0