Haskell 类型级程序的分层模块名称

Haskell 类型级程序的分层模块名称,haskell,module,type-families,data-kinds,Haskell,Module,Type Families,Data Kinds,假设我在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中写了一些:

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.)

许多数据结构存在于
数据中(
数据.文本
数据.列表
,等等),在
控件
中有各种构造效果的方式,如
控件.Monad
控件.Applicative


类型级别的程序应该在哪里<代码>类型
<代码>类型系列?达成共识了吗?

我检查了hackage,大多数提供类型级功能的包都存在于
数据
层次结构中,在
数据.type
数据.TypeLevel
等下,或者有时是
数据.Number.Etc.TypeLevel
。不过也有一些例外

类型级别自然数包在类型级别下有效:

tfp包在以下类型下生存:

许多尼古拉斯·弗里斯比的包裹都是用类型:和来包装的

显然,目前还没有达成共识。我个人认为
类型
是所有这些东西的合适去处,但与Haskell社区一样,一切都以
数据
结束

我想,一种几乎所有东西都是一流的语言的危险是:-)

您可以在hackage上的“type System”类别中看到一些(但不是全部)类型级别的软件包: