我正在 Yesod (0.10) 建立一个调查站点,并且迷失在类型中。这是我正在尝试做的简化版本。
invitation url = do
render <- getUrlRender
return $ renderHtml [hamlet|
<p>Dear foo, please take our
<a href=@{ShowSurveyR url}>survey.
|] render
另一个函数将调用它,希望得到一些可以从 Network.Mail.Mime 传递给 simpleMail 的东西。上面的函数给出了一个类型错误:
Handler/Root.hs:404:13:
The function `renderHtml' is applied to two arguments,
but its type `Html -> LT.Text' has only one
这很令人困惑,因为模板教程似乎是这样做的。但是如果我修改代码,像这样......
invitation url = do
return $ renderHtml [hamlet|
<p>Dear foo, please take our
<a href=@{ShowSurveyR url}>survey.
|]
我收到这种类型的错误。
Handler/Root.hs:403:24:
The lambda expression `\ _render[a4TO] -> ...' has one argument,
but its type `Html' has none
In the first argument of `renderHtml', namely
我认为 renderHtml 是错误的函数,但我找不到正确的函数。有谁知道我错过了什么?我应该如何将路由功能传递到我的 hamlet 代码中?