是否有任何方法可以在不使用类型族的情况下定义类型级别投影?
我这样做:
{-# LANGUAGE TypeFamilies #-}
type family Project t :: *
type instance Project [r] = r ,
但我实际上只使用过它的一个实例。
最佳答案
您可以使用 MultiParamTypeClass
和 FunctionalDependency
,但如果不知道为什么使用它,很难说这是否足够。
class Project k a | k -> a
instance Project [r] r
> :t undefined :: Project String r => r
undefined :: Project String r => r :: Char
关于Haskell 类型级投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18484377/