Se presenta la especificación de un lenguaje de programación en lógica con tipos polimorfos, junto con el desarrollo de un intérprete para el mismo en PROLOG. El polimorfismo permite, entre otras cosas, programar procedimientos genéricos, con argumentos que no tienen un tipo declarado estáticamente.
La incorporación de un sistema de tipos mejora el soporte de abstracción provisto por los lenguajes de programación lógica. Los tipos proveen un lenguaje claro para la especificación de interfases y herramientas para la depuración algorítmica Esta información puede utilizarse para la optimización de código y es de una ayuda inestimable para detectar errores de programación en tiempo de compilación.