Добавил пользовательские макросы и предикаты типов.

Запускать и руками тестировать это нереально.
Нужно уже сейчас начинать писать тесты.
Возможно, потребуется перегруппировать подключение файлов.
Вынес DBG в отдельный файл