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)))