-It requires some cleverness to use the link monad to bind more than
-one variable at a time. Whereas in the standard Reader monad a single
-environment can record any number of variable assignments, because
-Jacobson's monad only tracks a single dependency, binding more than
-one pronoun requires layering the monad. (Jacobson provides some
-special combinators, but we can make do with the ingredients already
-defined.)
-
-Let's take the following sentence as our target, with the obvious
-binding relationships:
-
-<pre>
- John believes Mary said he thinks she's cute.
- | | | |
- | |---------|---------|
- | |
- |-----------------------|
-</pre>
-
-It will be convenient to
-have a counterpart to the lift operation that combines a monadic
-functor with a non-monadic argument:
-
-<pre>
- let g f v = ap (unit f) v;;
- let g2 u a = ap u (unit a);;
-</pre>
-
-As a first step, we'll bind "she" by "Mary":
+1. Jacobson's reader monad only allows for establishing a single binding
+relationship at a time. It requires considerable cleverness to deploy
+her combinators in a way that establishes multiple binding
+relationships, as in