What a fascinating article - rarely do you run across such well written math material! I've got to disagree on the intuitiveness of Cantor's diagonal theory, though; that was one of the most beautiful and intuitive proofs in set theory for me: make a list (denumerable) of decimally expanded reals; change the digit on the diagonal of each; you've now created a number not on the list: QED. Bam.
Too bad the article didn't go all the way into computation-land, so I can't readily believe the "finitariness" of the insights contained there. For example, is the function E() actually implementable in Haskell? If it isn't, the whole premise kind of collapses... One way to make sense of this question would be to skip the red herring of constructibility and define reals as lazy streams of bits, then try to write actual code and stuff. (But how in the flying hell do you implement a rationality predicate on reals-as-streams?) There are probably other, non-equivalent ways. This stuff isn't trivial at all.<p>For a more enlightening perspective on such topics, see the blog "Mathematics and Computation", especially those articles:<p><a href="http://math.andrej.com/2007/09/28/seemingly-impossible-functional-programs/" rel="nofollow">http://math.andrej.com/2007/09/28/seemingly-impossible-funct...</a><p><a href="http://math.andrej.com/2008/02/06/representations-of-uncomputable-and-uncountable-sets/" rel="nofollow">http://math.andrej.com/2008/02/06/representations-of-uncompu...</a>