ライブラリではなく、プログラムのHaskell モジュールに名前を付け、それらを階層に編成するにはどうすればよいですか?
Luminosityというレイトレーサーを作っています。最初に私はこれらのモジュールを持っていました:
Vector Colour Intersect Trace Render Parse Export
各モジュールはそれ自体では問題ありませんでしたが、これには組織が欠けているように感じました。
まず、すべてのモジュールを の下に置き Luminosity
ました。たとえば、Vector
現在は でしたLuminosity.Vector
(これは haskell プログラムの標準であると思いますか?)。
次に、ベクターとカラーは独立していて再利用できるので、分離する必要があると考えました。しかし、ライブラリにするには小さすぎます。
彼らはどこへ行くべきですか?すでに (ハックで)Data.Vector
とData.Colour
があるので、そこに置くべきですか? それとも混乱の原因になりますか (他のローカル インポートとグループ化してインポートしても)? そこにない場合、それはあるべきですLuminosity.Data.Vector
かData.Luminosity.Vector
?たまたま型にはまらない構造を使用しているプロジェクトを見ただけかもしれませんが、両方が使用されているのを見たことがあると確信しています。
Export
また、Luminosity から独立できるシンプルな TGA 画像エクスポーター ( ) もあります。正しい場所は のようですが、ここでも、どこかにあるCodec.Image.TGA
はずです。Luminosity
Haskell プロジェクトの構造または他のウィキでこれが説明されているとよいでしょう。