Oll*_*ers 6 haskell modularity module
我正在Haskell写一个蛇游戏.这些是我的一些东西:
Coord数据类型Line数据类型Rect数据类型Polygon类型类,它允许我获得Rect一系列的行([Line]).Impassable类型类,它允许我获得Line一系列Coords([Coord]),以便我可以检测其他Impassables 之间的冲突.Draw我要绘制到屏幕的任何内容的类型类(HSCurses).Arbitrary为很多这些东西声明实例.目前我有很多这些在单独的模块中,所以我有很多小模块.我注意到我必须互相导入很多这样的东西,所以我有点想知道重点是什么.
我对Arbitrary实例感到特别困惑.在使用-Wall时,当我将这些实例放在一个测试文件中时,我得到关于孤立实例的警告,我的理解是我可以通过将这些实例放在与定义数据类型的模块相同的模块中来避免该警告但是我需要import Test.QuickCheck对于所有那些看似愚蠢的模块,因为只有在构建测试可执行文件时才需要QuickCheck.
有关QuickCheck特定问题的任何建议都将受到赞赏,因为有关如何/何地将程序划分为模块的更一般问题的指导.