从搭建的Yesod应用程序开始,Foundation.hs已经发生了很多事情。随着我的应用程序的增长,我一直在尝试将一些功能分解为不同的模块。例如,defaultLayout
定义以及MenuItem
类型的相关定义看起来更像移动到单独的模块。但是,我这样做的尝试被挫败了。
要将菜单项定义为defaultLayout
的一部分,需要导入Foundation以获取路径数据构造函数(即StaticR
,AuthR
以及config/routes
中定义的自己的路径,并导入Application以获取App
类型的Yesod实例。但是基金会需要导入这个模块来定义defaultLayout
!
是否可以将这些内容移动到单独的模块中?人们如何避免大规模的整体基金会?