In Heim and Kratzer's textbook <cite>Semantics in Generative Grammar</cite>, the interpretation of complex phrases like \[[interprets complex phrases]] are trees that look like this:
-
-> VP
-> / \
-> / \
-> / \
-> / \
-> / \
-> / NP
-> / / \
-> / / \
-> V / \
-> | / \
-> \[[interprets]] AP N
-> / \ |
-> \[[complex]] \[[phrases]]
+<blockquote><pre>
+ VP
+ / \
+ / \
+ / \
+ / \
+ / \
+ / NP
+ / / \
+ / / \
+ V / \
+ | / \
+\[[interprets]] AP N
+ / \ |
+ \[[complex]] \[[phrases]]
+</pre></blockquote>
Now the normal way in which the nodes of such trees are related to each other is that the semantic value of a parent node is the result of applying the functional value of one of the daughter nodes to the value of the other daughter node. (The types determine which side is the function and which side is the argument.) One exception to this general rule is when multiple adjectives are joined together, as happens in \[[interprets complex English phrases]]. We'll ignore that though.
You can trace through what happens then if we apply \[[who(i)]] to (\[[spurned]] applied to \[[Alice]] and \[[i]]):
- [[Alice spurned i]] = [[spurned]] [[Alice]] [[i]]
+ \[[Alice spurned i]] = \[[spurned]] \[[Alice]] \[[i]]
= (lift2 S) (unit Alice) (lookup i)
= bind (unit Alice) (fun x -> bind (lookup i) (fun y -> unit (S x y)))
And now supplying \[[Alice spurned i]] as an argument to \[[who(i)]], we get:
- [[who(i): Alice spurned i]] = [[who(i)]] [[Alice spurned i]]
+ \[[who(i): Alice spurned i]] = \[[who(i)]] \[[Alice spurned i]]
= (fun u v -> shift i v u) (fun e -> S Alice (lookup i e))
= fun v -> shift i v (fun e -> S Alice (lookup i e))