SFINAE - это точно кривой, неполный и не чистый term rewriting. 😉
Болгары очень любили рассуждать про template metaprogramming, и написали пару компиляторов с чистых функциональных языков в meta-C++.
Один из этих языков - eClean (подмножество Clean, увы - было бы крайне занятно посмотреть на реализацию unique типов, но про неё они упомянули лишь вскользь).
А ещё есть компилятор почти Хаскеля 98 в meta-C++ - MetaFun.
https://gergo.erdi.hu/projects/metafun/