+
+Montague's PTQ treatment of DPs as generalized quantifiers
+----------------------------------------------------------
+
+We've hinted that Montague's treatment of DPs as generalized
+quantifiers embodies the spirit of continuations (see de Groote 2001,
+Barker 2002 for lengthy discussion). Let's see why.
+
+First, we'll need a type constructor. As we've said,
+Montague replaced individual-denoting determiner phrases (with type `e`)
+with generalized quantifiers (with [extensional] type `(e -> t) -> t`.
+In particular, the denotation of a proper name like *John*, which
+might originally denote a object `j` of type `e`, came to denote a
+generalized quantifier `fun pred -> pred j` of type `(e -> t) -> t`.
+Let's write a general function that will map individuals into their
+corresponding generalized quantifier:
+
+ gqize (a : e) = fun (p : e -> t) -> p a
+
+This function is what Partee 1987 calls LIFT, which is not an unreasonable name. But we will avoid her term here, since that word has been used to refer to other functions in our discussion.
+
+This function wraps up an individual in a box. That is to say,
+we are in the presence of a monad. The type constructor, the unit and
+the bind follow naturally. We've done this enough times that we won't
+belabor the construction of the bind function. The derivation is
+highly similar to the List monad just given:
+
+ type 'a continuation = ('a -> 'b) -> 'b
+ let c_unit (a : 'a) = fun (p : 'a -> 'b) -> p a
+ let c_bind (u : ('a -> 'b) -> 'b) (f : 'a -> ('c -> 'd) -> 'd) : ('c -> 'd) -> 'd =
+ fun (k : 'a -> 'b) -> u (fun (a : 'a) -> f a k)
+
+Note that `c_unit` is exactly the `gqize` function that Montague used
+to lift individuals into generalized quantifiers.
+
+That last bit in `c_bind` looks familiar---we just saw something like
+it in the List monad. How similar is it to the List monad? Let's
+examine the type constructor and the terms from the list monad derived
+above:
+
+ type ('a, 'b) list' = ('a -> 'b -> 'b) -> 'b -> 'b;;
+ (* that is of the form ('a -> 'r) -> 'r, where 'r = 'b -> 'b *)
+ let l'_unit a = fun k z -> k a z;;
+
+This can be eta-reduced to:
+
+ let l'_unit a = fun k -> k a
+
+and:
+
+ let l'_bind u f =
+ (* we mentioned three versions of this, the eta-expanded: *)
+ fun k z -> u (fun a b -> f a k b) z
+ (* an intermediate version, and the fully eta-reduced: *)
+ fun k -> u (fun a -> f a k)
+
+Consider the most eta-reduced versions of `l'_unit` and `l'_bind`. They're the same as the unit and bind for the Montague Continuation monad! In other words, the behavior of our v3-List monad and the behavior of the continuations monad are
+parallel in a deep sense.
+
+Have we really discovered that lists are secretly continuations? Or
+have we merely found a way of simulating lists using list
+continuations? Well, strictly speaking, what we have done is shown
+that one particular implementation of lists---the right fold
+implementation---gives rise to a Continuation monad fairly naturally,
+and that this monad can reproduce the behavior of the standard list
+monad. But what about other list implementations? Do they give rise
+to monads that can be understood in terms of continuations?
+
+