manip trees: tweaks
[lambda.git] / 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 *)
 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`:
 
 
 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
 
        int2int_reader 2 (fun i -> i + i);;
        - : int = 4