我应该如何为我的Haskell程序命名模块,在层次结构中组织它们?(这是一个针对程序而非库的问题)
我正在制作一个名为Luminosity的光线追踪器。起初,我有以下这些模块:
每个模块本身都很好,但我觉得缺乏组织。
首先,我把每个模块放在“Luminosity”下,所以例如“Vector”现在是“Luminosity.Vector”(我认为这是Haskell程序的标准格式?)。
然后我想:向量和颜色是独立的,可以重复使用,因此它们应该分开。但它们太小了,无法成为库。
它们应该放在哪里?已经有了一个
我还有一个简单的TGA图像导出器(
我正在制作一个名为Luminosity的光线追踪器。起初,我有以下这些模块:
Vector Colour Intersect Trace Render Parse Export
每个模块本身都很好,但我觉得缺乏组织。
首先,我把每个模块放在“Luminosity”下,所以例如“Vector”现在是“Luminosity.Vector”(我认为这是Haskell程序的标准格式?)。
然后我想:向量和颜色是独立的,可以重复使用,因此它们应该分开。但它们太小了,无法成为库。
它们应该放在哪里?已经有了一个
Data.Vector
和Data.Colour
(在hackage上),所以我应该把它们放在那里吗?或者会引起混淆(即使我将它们与其他本地导入一起分组导入)?如果不是那里,应该是Luminosity.Data.Vector
还是Data.Luminosity.Vector
?我很确定我看到过两种格式的使用,尽管可能只是看到了使用非传统结构的项目。我还有一个简单的TGA图像导出器(
Export
),它可以独立于Luminosity。它似乎应该被放在Codec.Image.TGA
中,但同样,Luminosity
是否应该出现在其中,如果是,应该放在哪里?
如果Haskell项目的结构或其他维基能够解释这个问题,那就太好了。