我正在使用blaze-html。我终于能够很好地理解如何使用它了,但是其中的一些单调和转换确实总是让我感到困惑。但这里有一个特别的绊脚石(有很多,但我将从这里开始讨论Happstack的响应和ServerPart monads)。
如果我想将字符串文本附加到段落,我必须使用此函数(来自Text.Blaze.Html5):
p . toHtml :: ToMessage a => a -> Html都很好很好除了..。
toHtml :: ToMarkup a => a -> Markup
p :: Html -> Html我已经尽我所能地搜索了文档,我看不出标记monad和Html monad是如何相互关联的。我如何处理所有的类型和类型类?
发布于 2012-09-22 04:45:38
它们是同义词(即它们是同一类型),如documentation中所示。
此外,将这些类型称为monads也是不正确的。它们只是类型。然而,它们是由单体(MarkupM)构建的。
作为一个快速检查,如果某个东西是由另一个类型参数化的类型(具有种类的* -> *),那么它可以被称为monad。这是一个必要条件(但不是充分条件)。
https://stackoverflow.com/questions/12537890
复制相似问题