当我遇到这个非常有趣的例子时,我正在浏览关于 TypeNats 的 GHC wiki部分。他们正在创建类型列表:
type family Get (n :: Nat1) (xs :: [*]) :: *
type instance Get Zero (x `: xs) = x
type instance Get (Succ n) (x `: xs) = Get n xs
我想了解更多关于这方面的信息。我假设这个特性在 7.6.1 中没有实现(至少它没有为我编译),并且浏览票证被证明是相当压倒性的。知道我应该寻找什么吗?