Añadiendo Tipos de Refinamiento a Rust: Un Estudio de Viabilidad

2024-12-24

Este artículo explora la viabilidad de añadir tipos de refinamiento al lenguaje de programación Rust. Basándose en la experiencia con YAIOUOM, un analizador estático que utilizaba tipos de refinamiento para comprobar unidades de medida, el autor examina enfoques para implementar tipos de refinamiento dentro del sistema de tipos de Rust. Se proponen varias opciones, incluyendo modificaciones en la resolución de rasgos, unificación de variables de tipo y la introducción de un mecanismo de palabra clave enchufable para la comprobación de tipos posterior a la compilación. Un enfoque optimista —ignorando la información de unidades al principio de la compilación y comprobando posteriormente— se considera más práctico. Se discuten el diseño de la API y el manejo de mensajes de error. El trabajo futuro implica recopilar comentarios, escribir un controlador rustc que admita plugins e implementar varios tipos de refinamiento, potencialmente incluyendo una nueva versión de YAIOUOM y subconjuntos de Flux o Liquid Haskell.