Haskell 哈斯克尔。为什么:info(:)会返回两次定义?
我是哈斯克尔的新手 如果我输入GHCi(7.10.3): 我得到的结果是:Haskell 哈斯克尔。为什么:info(:)会返回两次定义?,haskell,types,infix-notation,Haskell,Types,Infix Notation,我是哈斯克尔的新手 如果我输入GHCi(7.10.3): 我得到的结果是: *** Parser: data [] a = ... | a : [a] -- Defined in ‘GHC.Types’ infixr 5 : data [] a = ... | a : [a] -- Defined in ‘GHC.Types’ infixr 5 : 这是否意味着运算符定义了两次? 我在源代码中没有发现任何可疑的东西=/请不要注意,这肯定是一个bug。我可以在GHC 7.10.3上重现
*** Parser:
data [] a = ... | a : [a] -- Defined in ‘GHC.Types’
infixr 5 :
data [] a = ... | a : [a] -- Defined in ‘GHC.Types’
infixr 5 :
这是否意味着运算符定义了两次?
我在源代码中没有发现任何可疑的东西=/请不要注意,这肯定是一个bug。我可以在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 :
[]
的定义充满了魔力;我对GHCi所说的任何事都持保留态度。我会称之为虫子。请随时在bug追踪器上报告。ghc 7.8.4也有同样的问题。@gallais你能提供一个答案吗?另一个答案已经尘埃落定了!我想知道是什么把它修好了——如果它只造成了这一个怪癖,我怀疑有人会介意。也许代码被重写是因为更重要的原因。
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 :