shapeless 中是否存在将类型构造函数用于 Nat 的基础结构?

Is there infrastructure in shapeless that takes a type constructor to the power of a Nat?

对我来说这是一个非常基本的功能,但我在当前的 shapeless (2.3.3) 中找不到它。

所以我正在寻找 Induction[X,F[_],N <: Nat]

类型
Induction[X,F,Nat._0].Out =:= X
Induction[X,F,Nat._1].Out =:= F[X]
Induction[X,F,Nat._2].Out =:= F[F[X]]
...

也许还可以沿着类型构造链接一个函数,例如构造一个 Point 实例?

不,没有。正如您所观察到的,这很可能需要一个类似于 Point 的类型 class 才能发挥作用。我建议在 Kittens 中添加类似这样的内容,这取决于 shapeless 和 Cats。