El repositorio "lisp-in-types", publicado en GitHub por el usuario playX18, ofrece una implementación del lenguaje de programación Lisp construida por completo sobre el sistema de tipos de Rust, de modo que los programas en Lisp se expresan como tipos y se evalúan en tiempo de compilación mediante traits y macros asociadas. Cada símbolo debe declararse manualmente con la macro defkey!(), lo que obliga a registrar identificadores antes de utilizarlos en expresiones. El sistema maneja números enteros positivos en un rango limitado de 0 a 8192, ampliable si el usuario modifica build.rs para generar naturales más grandes, aunque en ese caso es necesario aumentar la variable de entorno RUST_MIN_STACK al ejecutar los tests, ya que el árbol de tipos crece de forma considerable. Entre las funcionalidades soportadas se encuentran funciones recursivas, entornos globales y léxicos mediante bindings, llamadas a funciones, la forma apply, que el autor indica que funciona correctamente, y la primitiva call/ec, una característica característica de Scheme que permite capturar y escapar con la continuación actual, demostrada con un ejemplo que devuelve 5 al invocar la continuación con dicho valor. El proyecto no incorpora defmacro ni eval, y el propio autor reconoce que no ha realizado pruebas exhaustivas, por lo que debe considerarse un experimento o prueba de concepto más que una herramienta lista para producción. El enfoque ilustra cómo el potentísimo y estricto sistema de tipos de Rust puede aprovecharse como motor de evaluación para lenguajes dinámicos, llevando la metaprogramación a un extremo inusual: la lógica del intérprete vive exclusivamente en tiempo de compilación.
