我正在使用 blaze-html。我终于能够大致了解如何使用它了,但是一些单子和转换真的让我一直很困惑。但这里有一个特别的绊脚石(在很多中,但我会再离开一天,从这里转到 Happstack 的 Response 和 ServerPart monads)。
如果我想将字符串文本附加到段落,我必须使用这个函数(来自 Text.Blaze.Html5):
p . toHtml :: ToMessage a => a -> Html
一切都很好,除了...
toHtml :: ToMarkup a => a -> Markup
p :: Html -> Html
我已经尽我所能搜索了文档,但我看不到 Markup monad 和 Html monad 是如何相互关联的。我如何处理所有类型和类型类?