Здравствуйте, andrey.desman, Вы писали:
AD>Конкретно тот код основывается на так называемых loop holes, по сути баге/недосмотру в стандарте, позволяющему хранить и модифицировать состояние компилятора.
Ну, даже в Си на макросах нечто похожее можно состряпать.
Т.е. идея переопределения символов времени компиляции не нова, просто появилась "более типизированная" реализация.
В функциональных языках с генерализацией (типа Хаскеля) подобные трюки тоже возможны и активно используются.
Причём, как на основе вычислений типов, так и на основе вычислений термов в процессе бета-редукции.