为什么Haskell解析注释?

我有一个非常简单的代码(在 GHC 8.10.4/ stack ghci17.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


以上是为什么Haskell解析注释?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>