为什么 Haskell 解析评论?
Why is Haskell parsing comments?
我有一个非常简单的代码(在 GHC 8.10.4/stack ghci
17.12 中):
module T where
data D = A | B | C deriving (Eq, Show)
fn :: D -> Int
fn x =
case x of
A ->
-- | Test
1
B -> 2
C -> 3
问题是,无论我用 ^
替换 |
还是使用多行注释,我都会得到这个错误:
T.hs:9:7: error: parse error on input ‘-- | Test’
|
9 | -- | Test
| ^^^^^^^^^
解析器是否将我的评论与其他内容不匹配?还是有一个看起来像注释的特殊语法?
评论以--
开头。以-- |
开头的注释是文档工具haddock的一种特殊注释,只允许出现在某些地方(而且你放的位置不是其中之一)。 GHC 实际上接受你的代码。您构建程序的方式很可能涉及黑线鳕的调用,它拒绝放错位置的 -- |
评论。
解决方案:使用 --
表示普通注释,而不是 -- |
,后者用于黑线鳕。
-- Test
我有一个非常简单的代码(在 GHC 8.10.4/stack ghci
17.12 中):
module T where
data D = A | B | C deriving (Eq, Show)
fn :: D -> Int
fn x =
case x of
A ->
-- | Test
1
B -> 2
C -> 3
问题是,无论我用 ^
替换 |
还是使用多行注释,我都会得到这个错误:
T.hs:9:7: error: parse error on input ‘-- | Test’
|
9 | -- | Test
| ^^^^^^^^^
解析器是否将我的评论与其他内容不匹配?还是有一个看起来像注释的特殊语法?
评论以--
开头。以-- |
开头的注释是文档工具haddock的一种特殊注释,只允许出现在某些地方(而且你放的位置不是其中之一)。 GHC 实际上接受你的代码。您构建程序的方式很可能涉及黑线鳕的调用,它拒绝放错位置的 -- |
评论。
解决方案:使用 --
表示普通注释,而不是 -- |
,后者用于黑线鳕。
-- Test