編譯與GHC 6.12.1下面的Haskell程序產生一個錯誤:Haskell中: 「不在範圍: '>>'」,沒有隱式前奏
{-# LANGUAGE NoImplicitPrelude #-}
module Example where
import Prelude(Integer, fromInteger, (==))
f :: Integer -> Integer
f n
| n == 0 = 0
即:
example.hs:9:6: Not in scope: `>>'
的當我更改導入語句時錯誤消失:
import Prelude(Integer, fromInteger, (==), (>>))
這很有道理。然而,我不明白爲什麼首先出現錯誤。我的程序似乎沒有使用任何Monad,而>>
是Monad運營商之一。
這很奇怪!我添加了一個無意義的定義,比如'(>>)=「blah」',它仍然按照預期進行類型檢查和工作。據我所知,「(>>)」根本不叫。對於它的價值,您的第一個版本在GHC 7.0.2中未作修改。 – yatima2975 2011-03-23 09:35:15