X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=list_monad_as_continuation_monad.mdwn;h=0edec2552c4f1b0fa6bf6238dd9864b9cfc0fc56;hp=970a587d7c73c09b8b05043ec7938774cf37d8b7;hb=c51397c5a41cbf75e37382905b212868e427b16b;hpb=842e591b50617da16e6bf1727322a0e5a755b609;ds=sidebyside diff --git a/list_monad_as_continuation_monad.mdwn b/list_monad_as_continuation_monad.mdwn index 970a587d..0edec255 100644 --- a/list_monad_as_continuation_monad.mdwn +++ b/list_monad_as_continuation_monad.mdwn @@ -222,7 +222,7 @@ fold that function over its type `'a` members, and that's where we can get at th ... u (fun (a : 'a) (b : 'b) -> ... f a ... ) ... -In order for `u` to have the kind of argument it needs, the `... f a ...` has to evaluate to a result of type `'b`. The easiest way to do this is to collapse (or "unify") the types `'b` and `'d`, with the result that `f a` will have type `('c -> 'b -> 'b) -> 'b -> 'b`. Let's postulate an argument `k` of type `('c -> 'b -> 'b)` and supply it to `(f a)`: +In order for `u` to have the kind of argument it needs, the `fun a b -> ... f a ...` has to have type `'a -> 'b -> 'b`; so the `... f a ...` has to evaluate to a result of type `'b`. The easiest way to do this is to collapse (or "unify") the types `'b` and `'d`, with the result that `f a` will have type `('c -> 'b -> 'b) -> 'b -> 'b`. Let's postulate an argument `k` of type `('c -> 'b -> 'b)` and supply it to `(f a)`: ... u (fun (a : 'a) (b : 'b) -> ... f a k ... ) ...