fork from http://svn.freepascal.org/svn/fpc/branches/blaise/closures/compiler/