Haskell. 为什么 :info (:) 会返回两次定义?

12

我是Haskell的新手。

如果我在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跟踪器上报告它。 - Daniel Wagner
使用ghc 7.8.4出现相同的问题。 - Bakuriu
@gallais你能把它作为答案提供吗? - sclv
1个回答

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 :

又一个问题解决了!我想知道是什么让它被修复了——如果它只引起了这个小问题,我怀疑任何人都不会费心去解决。也许代码因为某些更重要的原因而被重写了。 - dfeuer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接