我应该如何为程序而不是库命名我的 Haskell 模块,并将它们组织成层次结构?
我正在制作一个名为 Luminosity 的光线追踪器。首先我有这些模块:
Vector Colour Intersect Trace Render Parse Export
每个模块本身都很好,但我觉得这缺乏组织。
首先,我将每个模块都放在 下 Luminosity
,例如Vector
现在Luminosity.Vector
(我假设这是 haskell 程序的标准?)。
然后我想:Vector和Color是独立的,可以复用,所以应该分开。但是它们太小了,不能变成图书馆。
他们应该去哪里?已经有(在hackage上) a Data.Vector
and Data.Colour
,所以我应该把它们放在那里吗?或者这会导致混淆(即使我将它们与其他本地进口组合进口)?如果不存在,应该是Luminosity.Data.Vector
还是Data.Luminosity.Vector
?我很确定我已经看到两者都使用过,尽管也许我只是碰巧看到了一个使用非常规结构的项目。
我还有一个简单的 TGA 图像导出器 ( Export
),它可以独立于 Luminosity。看起来正确的位置应该是Codec.Image.TGA
,但同样,应该Luminosity
在某个地方,如果是,在哪里?
如果Haskell 项目的结构或其他一些 wiki 解释了这一点,那就太好了。