Reply to Walter, > This has been done in D already: It has some interesting features :) (I might have to steal a few for my version)