为什么Haskell在解析注释?
我有一个非常简单的代码(在GHC 8.10.4/为什么Haskell在解析注释?,haskell,syntax-error,Haskell,Syntax Error,我有一个非常简单的代码(在GHC 8.10.4/stack ghci17.12中): 问题是,无论我用^替换|,还是使用多行注释,我都会得到以下错误: T.hs:9:7: error: parse error on input ‘-- | Test’ | 9 | -- | Test | ^^^^^^^^^ 解析器是否使我的注释与其他注释不匹配?或者是否有一种看起来像注释的特殊语法?注释以--开头。以-|开头的注释是文档工具haddock的一种特殊注释,只允许在某
stack ghci
17.12中):
问题是,无论我用^
替换|
,还是使用多行注释,我都会得到以下错误:
T.hs:9:7: error: parse error on input ‘-- | Test’
|
9 | -- | Test
| ^^^^^^^^^
解析器是否使我的注释与其他注释不匹配?或者是否有一种看起来像注释的特殊语法?注释以
--
开头。以-|
开头的注释是文档工具haddock的一种特殊注释,只允许在某些地方使用(您放置注释的位置不是其中之一)。GHC实际上接受您的代码。您构建程序的方式可能涉及调用haddock,它拒绝放错位置的--
注释
解决方案:使用--
作为普通注释,而不是用于haddock的--
-- Test
我不能复制这个,用给定的文件,它被处理,所以没有编译器错误。我不是Haskell专家,但是你真的被允许在这样的表达式中间放置一个注释吗?你说你用<代码> ^ < /代码>替换<代码> <代码>。但是错误消息显示一个
@RobertHarvey它在没有
@chepner的情况下工作错误消息与代码匹配,当然,当我更改它时,错误消息也会更改。或者,如果必须有一条垂直线,请使用--│代码>(U+2502方框图灯垂直)。
-- Test