Compilar el siguiente programa de Haskell con GHC 6.12.1 produce un error:Haskell: "No en su alcance: '>>'" sin preludio implícita
{-# LANGUAGE NoImplicitPrelude #-}
module Example where
import Prelude(Integer, fromInteger, (==))
f :: Integer -> Integer
f n
| n == 0 = 0
A saber:
example.hs:9:6: Not in scope: `>>'
El el error desaparece cuando cambio la instrucción de importación a:
import Prelude(Integer, fromInteger, (==), (>>))
Esto tiene sentido. Lo que no entiendo, sin embargo, es por qué hay un error en primer lugar. Mi programa no parece hacer uso de ningún Monad, mientras que >>
es uno de los operadores de Monad.
¡Eso es raro! He agregado una definición sin sentido como '(>>) =" blah "' y todavía mecanografía y funciona como se esperaba; '(>>)' no se llama en absoluto, por lo que yo sé. Por lo que vale, tu primera versión funciona sin modificaciones en GHC 7.0.2. – yatima2975