мне смутно помнится, что нечто подобное уже обсуждалось, но…

а зачем вообще менять компилятор для шаблонов? у нас жетакая-то документная система! делаем вьюшку, похожую на фолд; в ней пишем нужный тип, и документ с исходником-шаблоном. после чего по клацу эта вьюшка разворачивает шаблон, заменяя type placeholders — почти как обычный фолд. если клацнуть обратно — сворачивает. зачем надо обратно — чтобы можно было обновить шаблон из файла.

получаем что? получаем гибкие шаблоны — раз. если мы шаблон один раз развернули — он не сломается, когда файл поменяли, потому что его по месту вставили. если надо обновить — просто свернули-развернули. если надо обновить во всём проекте, например — элементарно пишем инструмент, который просканирует документы в "Mod/" и программно поклацает на нужных вьюшках.

итого: получаем все прелести шаблонов (и не только импортом модуля — хоть мильярд их плоди из одного исходника!) без изменения компилятора, без необходимости из модуля-шаблона что-то экспортировать и ты пы. более того: когда шаблоны развёрнуты — все обычные инструменты работы с исходником спокойно продолжают работать.

да, использовать шаблон внутри шаблона тоже можно, в принципе: просто развернуть внутри шаблон-фолда ещё один, делов-то. а что это не очень удобно — так оно и хорошо: не поощряет шаблонизм черепа.

по-моему, интересная идея. как вам кажется? надо будет попробовать написать и посмотреть, что из этого получится на практике.