Так что давайте говорить, что я написал несколько type-level program в Haskell:Иерархическое имя модуля для программ типа уровня
type family NAryFn (n::Nat) (dom::*) (cod::*) :: *
type instance NAryFn Ze dom cod = cod
type instance NAryFn (Su n) dom cod = dom -> NAryFn n dom cod
Я думаю, что это полезно, и я хочу, чтобы использовать все это по моему проекту. Поэтому я поместил его в модуль.
Что было бы хорошим иерархическим именем для модуля? (C.f. Haskell Hierarchical Modules)
Множество структур данных живут в Data
(Data.Text
, Data.List
, и т.д.), различные способы структурирования эффектов в Control
, таких как Control.Monad
или Control.Applicative
.
Где должны быть программы на уровне уровня? Type
? TypeFamily
? Достигнут ли консенсус?