1
我知道在某些情况下,我必须为isString实例的某个东西提供类型注释,但我不完全确定必须在什么位置以及为什么必须这样做。处理isString实例的类型注释
我有一个我想与Bootstrap3渲染每following documentation
在我的表格形式,如果我只是把它作为bootstrapSubmit "Register"
,我将会得到如下:
No instance for (Data.String.IsString msg0)
arising from the literal `"Register"'
The type variable `msg0' is ambiguous
如果我改变它到(bootstrapSubmit ("add" :: BootstrapSubmit Text))
,它编译。为什么它不能像文档显示那样对我有用?
下面是其他一些例子我感到困惑:
的bfs功能,我想用在我的表格如下:
areq intField (bfs "Weight") Nothing
让我的字段,以获取额外的form-control
类。与No instance for...
同样的故事将其更改为areq intField (bfs ("Weight"::Text)) Nothing
可修复类型问题。
为什么这不适用于没有类型注释的广告?
您是否尝试过在[Bootstrap3模块(HTTP的顶部添加了'OverloadedStrings'编译,如: //hackage.haskell.org/package/yesod-form-1.3.8.2/docs/src/Yesod-Form-Bootstrap3.html)? –
我只是试图添加它,但它没有帮助,同样的错误。虽然OverloadedStrings在我的项目中几乎处于活动状态,但与TemplateHaskell和各种其他扩展一样,我的印象还是很糟糕。 – rafalio