Errores y Advertencias
Al cargar un programa en el intérprete se realiza un chequeo de errores. En el caso de que haya alguno, se despliega el mensaje correspondiente y la línea/columna del texto en el que ocurrió, y el programa no se ejecuta. Todos los textos de los mensajes son en español y refieren a errores conceptuales.
Supongamos que tenemos la función areaTria de la Figura 2 definida en un archivo llamado 'Ejemplos', y definimos una función 'areaRara' así
areaRara :: R -> R
areaRara(x) = areaTria(x)
Al cargar ’Ejemplos’ en el intérprete se produce el error:
Error: {archivo: Ejemplos linea: 53 columna: 25}
Se esperan elementos de (R X R)
pero se encontro R.
También hay advertencias, que no impiden la ejecución del programa pero cuyo origen debe ser revisado porque puede ser fuente de errores futuros. O sea que las advertencias informan posibles problemas que en esa etapa no se han podido todavía detectar como errores. Si en el archivo 'Ejemplos' definimos la función
mismo :: R -> Rno0
mismo(x) = x
Se despliega una advertencia al cargarlo en el intérprete:
Advertencia: {archivo: Ejemplos linea: 3 columna: 1}
Conjunto Rno0 requerido es subconjunto del resultante.
Por lo que existe la posibilidad de que su valor quede
fuera del conjunto.
y un error al aplicarla a 0, como se muestra a continuación:
mismo(0)
Error: {archivo: Ejemplos linea: 3 columna: 12}
Valor 0 no pertenece al conjunto Rno0
porque no se cumple: [0 /= 0].