Inferencia de tipos para registros anónimos: guía introductoria

Fuentes: Record type inference for dummies

Este artículo explica, desde cero y con ejemplos, cómo funciona la inferencia de tipos para los registros anónimos, una pieza que el autor considera clave y todavía недостаточно aprovechada en los lenguajes estáticamente tipados. Un registro anónimo es aquel que no necesita una declaración de tipo previa, equivalente a los objetos de JavaScript, los diccionarios de Python, los hashes de Ruby, los attribute sets de Nix o los propios objetos JSON. Lenguajes como TypeScript, C# y PureScript ya los soportan dentro del paradigma estático.

El texto introduce una sintaxis formal mínima para expresiones (booleanos, cadenas, números y registros) y otra paralela para tipos, y muestra cómo escribir reglas de inferencia en notación de teoría de tipos, acompañadas de su traducción directa a Haskell. A partir de ahí deduce cómo obtener el tipo de un literal de registro combinando los tipos de cada campo, y cómo añadir una regla para el acceso por punto. Esa regla es la primera que puede fallar: devuelve error si el operando no es un registro o si el campo no existe.

Por último, el post deja abierto un interrogante central: por qué la inferencia se basa en los tipos de las subexpresiones y no en sus valores. Esa discusión, junto con el caso de los registros anónimos en sí, sirve como antesala de una segunda entrega centrada en la inferencia avanzada.