...which is a big task, can you say what content has been expanded? One of the surprises, for me, of the original lecture notes was that they didn't properly tackle Prawitz's ideas about natural deduction and the meaning of propositions: for me, these ideas are the source of most of what is interesting about the correspondence. Has this been fixed?

I'm not sure that is actually an easier task. ;-) A quick scan of the contents shows that, though the structure is substantially the same, all the sections seem to have more pages.

Quickly re-reading their summary of the LC in the original after having read that in the book shows fairly significant rewrites of the material: where the original lecture notes are a bit more discursive, the book is quite pithy, as one might expect.

they didn't properly tackle Prawitz's ideas about natural deduction and the meaning of propositions

If you give me some idea about what you found lacking, I can better assess for it when I get to the appropriate sections. ;-)

My own "test case" will be the chapter on classical logic and control: I found the original presentation unsatisfying and hope to get a deeper insight into the subject this time around.

I've gotten about half way through this book, and have enough of a sense of it to offer my promised review.

This book covers the basics of proof theory, logic, lambda calculus and type theory through the disciplined focus bringing out the relationships between them.

Compared to the original lecture notes, I find the book much more disciplined and cohesive. They seem to have rewritten the sections so that as you move through the different topics, the very presentation helps to bring out the parallels and relationships between them: the actual isomorphism becomes almost a formality.

Much of the material will be familiar to someone already well-read in the subject areas, but the focused and pithy writing style and the methodical presentation will likely make this a good reference work, and very nice refresher as well. With its plethora of excercises, backed up by hints and soltions at the back of the book, this would be an excellent source for a graduate course or graduate self-study.

Again to compare with the freely available lecture notes, my litmus-test section was the chapter on classical logic and control operators, and I found this to be much superior to the original. Like much of the book, it seems to have been re-written for clarity, and they have refined the lambda calculus they use to one which makes more plain what is going on. I got out of it what I'd hoped: much improved intuitions about what the correspondence between classical logic and control operators actually means and how it works.

I should make a few comments about what this book is not. It is not an undergraduate level book. The presentation is very focused, methodical and disciplined, as I've said, and this means that it leaves out a lot of the hand-holding explanation a truly "beginner-level" book would leave out. However, there is enough motivating commentary so that an experienced reader of such material never finds himself asking "Why should I care about this again?", as can sometimes happen.

Likewise, this is not an encyclopedic coverage of the subject areas: at all times the authors keep focus and give a solid presentation of all the relevant and standard aspects of the material, but never lose sight of their goal of tying each area together. As a result, they don't spend any time digressing into rabbit-holes along the way that might be of interest to specialists in that area, which might dissappoint some, but I think overall is a massive strength.

The only subject matter that might not be so obviously relevant or standard is their presentation of Lorenzen dialogues, a kind of game semantics, for each of the propositional logics. (This seems to be new to the book.) I found this material quite interesting, but was less sure how it fit in with everything else, though it does present a fairly intuitive model of how proofs are computational; perhaps that's why its there.

At this point I might as well cut to the chase: is this book worth its hefty price tag? For some, no book could be good enough to pay that kind of money, especially when a reasonably good free alternative exists.

For myself, I'm enjoying reading it, strengthening my relevant intuitions, and will likely refer back to it as a reference in the future, so I have no regrets whatsoever about supporting the authors and the publishing company who have obviously worked so hard to produce such an excellent work on a subject that is near and dear to LtUers hearts.

If find any surprises, good or bad, in the second half of the book, I'll post here again.

I agree, the link to classical logic is one of the two or three litmus-like test topics. In my doctoral dissertation I tried to combine this with the foundational issue above, but with hindsight I only partly succeeded, because the link to the programmatic aspects of scheme/ML call/cc was rather obscure. It sounds like the field is still open for a "successor account" that combines both viewpoints.

Are you aware of a pair of papers, the first by Lafont, Streicher & Reus called "Expressing implication by means of negation", and the second by Streicher & Reus that appeared in the Journal of Functional programming about 2000ish? They have been my perennial favourites as papers that use a powerful set of theoretical inisghts to cast light on the operational side.