Very interesting! Maybe preprocessors really are the way to go for PHP, even if it were just for ironing out its inconsistencies (not to mention implementing a whole new language on top of it, as in this case).
But why those square brackets for argument lists? That seems unnecessary.