0

我用 Hakyll 写了一个上下文定义,如下所示:

import qualified Data.Map as M
....
mathCtx :: Context String
mathCtx = field "mathjax" $ \item -> do
  metadata <- getMetadata $ itemIdentifier item
  return $ if "mathjax" `M.member` (metadata)
           then "<script type=\"text/javascr ...  script>"
           else ""

在我迁移到和之前Debian 9,它运行良好。现在,编译时出现此错误消息:Hakyll 4.9.2.0GHC 8.0.1

• Couldn't match type ‘unordered-containers-0.2.7.1:Data.HashMap.Base.HashMap
                         text-1.2.2.1:Data.Text.Internal.Text
                         aeson-0.11.2.1:Data.Aeson.Types.Internal.Value’
                 with ‘M.Map [Char] a0’
  Expected type: M.Map [Char] a0
    Actual type: Metadata
• In the second argument of ‘M.member’, namely ‘(metadata)’
  In the expression: "mathjax" `M.member` (metadata)
  In the second argument of ‘($)’, namely
    ‘if "mathjax" `M.member` (metadata) then
         "<script type=\"text/javascr ...  script>"
     else
         ""’

你知道我的功能现在出了什么问题以及如何纠正这个问题吗?

4

0 回答 0