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