If you're interested in more Church, here's the blog post I wrote for my compilers students (with code) on Church encodings:<p><a href="http://matt.might.net/articles/church-encodings-demo-in-scheme/" rel="nofollow">http://matt.might.net/articles/church-encodings-demo-in-sche...</a><p>When building a compiler, I have my students use Church encodings to eliminate many constructs at first.  As we learn how to handle each construct, we steadily drop the Church encodings and performance improves.