在Yesod中添加自定义数据类型

时间:2015-11-03 14:19:41

标签: haskell yesod organization

我正在使用scaffolded yesod模板,并希望为货币值添加新类型。理想情况下,这应该在一个名为Money.hs的文件中完成。但这将形成循环进口:

  • 基金会进口模型。

  • 新的Money类型将在模型中用于存储货币 值。因此Model必须导入Money

  • 资金必须为moneyField :: Field Handler Money函数

  • 导入基础

TL DR:是否有一种“正确”的方式将新类型添加到脚手架的yesod应用程序,包括sql db type,shakespeare field widget和ToHtml instance?

1 个答案:

答案 0 :(得分:1)

您的第三个项目:为什么需要参考Handler?您可以使用与Yesod.Form.Fields中的内置字段相同的方式构建字段代码,例如:

textField :: Monad m => RenderMessage (HandlerSite m) FormMessage => Field m Text

有了这个:我说Money.hs(甚至Data/Money.hs)最有意义。