(forall x. f x -> g x) -> HList f xs -> HList g xs go :: HList f xs' -> HList(forall x. f x -> g x) -> HList f xs -> HList g xs where
go :: HList f xs' -> H
根据我的理解,如果类类型T为类型,T的默认初始化将调用用户提供的构造函数,或者T将为每个非变体非静态数据成员提供默认的成员初始化器:()。如果T的默认初始化会调用用户提供的T构造函数(不是从基类继承的),或者如果
(7.4)每个直接的非变体非静态数据成员M of T都有一个默认的成员初始化器。注意到粗体部分,在我看来,const-默认可构造类型<
Nat的存在仅仅是为了提升到类级别,而Natural的存在是为了实现类Nat -> Type。现在,我更喜欢使用GHC.TypeLits的Nat类型,而不是我自己的类型,然而,当我试图对代码进行转换时,我开始在理解方面遇到困难。也有自己的Nat类型。) (a :: [Type]) (b :: Type) | n a -> b where
index :: (Proxy n) -> (HL