manip trees: tweaks
authorJim Pryor <profjim@jimpryor.net>
Wed, 1 Dec 2010 07:37:55 +0000 (02:37 -0500)
committerJim Pryor <profjim@jimpryor.net>
Wed, 1 Dec 2010 07:37:55 +0000 (02:37 -0500)
Signed-off-by: Jim Pryor <profjim@jimpryor.net>
manipulating_trees_with_monads.mdwn

index 76cfef2..20039c2 100644 (file)
@@ -117,12 +117,12 @@ enough for now to expect that our reader will expect a function of
 type `int -> int`.
 
        type 'a reader = (int -> int) -> 'a;;  (* mnemonic: e for environment *)
-       let reader_unit (x : 'a) : 'a reader = fun _ -> x;;
-       let reader_bind (u: 'a reader) (f : 'a -> 'c reader) : 'c reader = fun e -> f (u e) e;;
+       let reader_unit (a : 'a) : 'a reader = fun _ -> a;;
+       let reader_bind (u: 'a reader) (f : 'a -> 'b reader) : 'b reader = fun e -> f (u e) e;;
 
 It's easy to figure out how to turn an `int` into an `int reader`:
 
-       let int2int_reader (x : 'a): 'b reader = fun (op : 'a -> 'b) -> op x;;
+       let int2int_reader (x : 'a) : 'b reader = fun (op : 'a -> 'b) -> op x;;
        int2int_reader 2 (fun i -> i + i);;
        - : int = 4