2016-03-07 49 views
12

我是新来的哈斯克尔。Haskell。为什么是:info(:)返回两次定义?

如果我在GHCI(7.10.3)类型:

:info (:) 

我得到的结果:

*** Parser: 
data [] a = ... | a : [a] -- Defined in ‘GHC.Types’ 
infixr 5 : 

data [] a = ... | a : [a] -- Defined in ‘GHC.Types’ 
infixr 5 : 

这是否意味着运营商被定义了两次? 我没有在源文件中发现任何可疑的东西=/

+6

'[]'的定义充满魔力; GHCi会用一粒盐来说明我的看法。 – dfeuer

+7

我会称这是一个错误。随时在bug跟踪器上报告。 –

+0

与ghc相同的问题7.8.4。 – Bakuriu

回答

3

不要理会这一点,它肯定是一个错误。我可以在GHC 7.10.3上重现这种行为,但是当前的GHC 8.0开发快照不会遇到这个问题:

GHCi, version 8.0.0.20160316: http://www.haskell.org/ghc/ :? for help 
Prelude> :info (:) 
data [] a = ... | a : [a] -- Defined in ‘GHC.Types’ 
infixr 5 : 
+0

另一个人咬着灰尘!我不知道是什么修复了它 - 如果它只是造成了这个特点,我怀疑有人会困扰。也许代码是由于更重要的原因而被重写的。 – dfeuer

相关问题