Haskell 类型级投影

标签 haskell type-level-computation

是否有任何方法可以在不使用类型族的情况下定义类型级别投影?

我这样做:

{-# LANGUAGE TypeFamilies #-}
type family Project t :: *
type instance Project [r] = r ,

但我实际上只使用过它的一个实例。

最佳答案

您可以使用 MultiParamTypeClassFunctionalDependency,但如果不知道为什么使用它,很难说这是否足够。

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/

相关文章:

haskell - Haskell 中是否有与 Data.Char 中的 ord 函数相反的函数

haskell - 类型 (.) 。 (.)

types - Rust 中的类型级映射

scala - 将 Shapeless hlist 类型 F[T1]::...::F[Tn]::HNil 映射到类型 T1::...::Tn::HNil(类型级别排序)

scala - 如何在 Scala 中正确使用模棱两可的隐式进行类型否定

haskell - 使用来自类型级别 map 的额外信息装饰类型级别列表

performance - 如何在 Haskell 中进行快速数据反序列化

ghc - 使用 foldl', foldr 列出连接

list - 如何访问我添加的带有缺点的列表元素(:) operator?

haskell - 类型级别约束编码