Algunos lenguajes de propósito especial como Coq permiten tan solo recursividad bien fundamentada y tienen una normalización fuerte(cálculos no finalizados pueden ser expresados tan solo con flujos de valores infinitos llamados codata) En consecuencia, estos lenguajes fallan el test de Turing y declarar funciones ciertas en ellos es imposible, pero pueden declarar una amplia clase de cálculos interesantes mientras evitan los problemas producidos por la recursividad sin restricciones.