我正在使用Cheapskate由Pandoc的作者John MacFarlane创建的库来进行降价解析。我遇到了一个我无法解决的类型问题。基本上我正在尝试为代码块生成html。我最终希望renderBlocks def blocks
键入check。我不能让块为Blocks
在源代码中,Blocks
类型别名为Seq Block
,但我的错误消息显示它们不同。我试过在没有运气的情况下放置过多的类型注释。如果我指定类型为Blocks
而不是Seq Block
,则会出现错误,指出Blocks
为Seq a0
。
以下是我的project供参考。
Couldn't match expected type `Blocks' with actual type `Seq Block'
In the second argument of `renderBlocks', namely `blocks'
In the expression: renderBlocks Cheapskate.def blocks
In the expression:
let
t = T.concat $ map partToText parts
attr
= CodeAttr {codeLang = (T.pack "haskell"), codeInfo = T.empty} ::
CodeAttr
block = CodeBlock attr t
....
in renderBlocks Cheapskate.def blocks
chunkToHtml :: Chunk -> Markup
chunkToHtml chunk =
case chunk of
Prose str -> toMarkup $ markdown Cheapskate.def (T.pack str)
Def _ _ parts ->
let
t = T.concat $ map partToText parts
attr = CodeAttr { codeLang=(T.pack "haskell"), codeInfo=T.empty} :: CodeAttr
block = CodeBlock attr t
blocks = (singleton block) :: Seq Block
in
renderBlocks Cheapskate.def blocks
答案 0 :(得分:1)
解决方案是恢复到从(0.5.5.1)到(0.4.2.1)的旧容器包。