Me encontré con algo que encuentro curioso mientras juego con el indicador interactivo de Haskell (ghci). El siguiente código ejecuta bajo ghci 7.0.4Escriba la ambigüedad con los números
[minBound..1]
desencadena la siguiente excepción:
<interactive>:1:12:
Ambiguous type variable `t0' in the constraints:
(Num t0) arising from the literal `1' at <interactive>:1:12
(Enum t0) arising from the arithmetic sequence `minBound .. 1'
at <interactive>:1:1-13
(Bounded t0) arising from a use of `minBound'
at <interactive>:1:2-9
Probable fix: add a type signature that fixes these type variable(s)
In the expression: 1
In the expression: [minBound .. 1]
In an equation for `it': it = [minBound .. 1]
sé que escribir lo anterior como [minBound..1 :: Int] sería dejar claro que ' 1 'aquí debe ser Int, pero mi pregunta es, ¿dónde está la ambigüedad? '1' podría interpretarse como Int, Entero, flotador o doble, pero ninguno de ellos, excepto Int pertenecen a la clase Limita. Entonces, ¿hay otra clase en la que el literal 1 podría enmascararse? Si no, ¿entonces qué?
Buena respuesta, gracias; Estaba haciendo suposiciones acerca de cómo funciona la inferencia tipográfica de Haskell, ahora lo sé mejor – Aky