Как мне назвать мои модули Haskell для программы, а не библиотеки , и организовать их в иерархию ?
Я делаю трассировщик лучей под названием Luminosity. Сначала у меня были эти модули:
Vector Colour Intersect Trace Render Parse Export
Каждый модуль был хорош сам по себе, но я чувствовал, что этому не хватает организации.
Сначала я поместил каждый модуль в Luminosity
, так что, например, Vector
теперь Luminosity.Vector
(. Я предполагаю, что это стандарт для программы Haskell? ).
Тогда я подумал, что :Вектор и Цвет независимы и могут использоваться повторно, поэтому их следует разделить. Но они слишком малы, чтобы превратить их в библиотеки.
Куда им идти? На hackage уже есть ()a Data.Vector
и Data.Colour
, так что мне их туда ставить?Или это вызовет путаницу (, даже если я импортирую их сгруппированными с моими другими локальными импортами )? Если нет, то должно ли это быть Luminosity.Data.Vector
или Data.Luminosity.Vector
? Я почти уверен, что видел, как используются оба, хотя, возможно, мне просто довелось посмотреть на проект, использующий нетрадиционную структуру.
У меня также есть простой экспортер изображений TGA (Export
). который может быть независим от Luminosity. Похоже, правильным местом будет Codec.Image.TGA
, но опять же, должно ли Luminosity
быть где-то там, и если да, то где?
Было бы неплохо, если бы Структура проекта Haskell или какая-то другая вики объяснили это.