在类型声明映射中使用类型同义词

mb14

我已经实现了这样的地图类型类型族

type family MapT (t :: * -> *) (e::[*]) 
type instance MapT t '[] = '[]
type instance MapT t (a ': as) = (t a) ': (MapT t as)

它与类型构造函数一起工作:

type MList  = MapT Maybe '[Int, String]

'[Maybe Int, Maybe String]

但是,我尝试

type M a = Maybe a
type MList' = MapT M '[Int, String]

它不起作用。

我也尝试过类型家庭

type family M a
type instance M a = Maybe a

但它仍然不起作用,说

 `Type synonym `M` should have 1 argument.

有没有一种方法可以解决此问题而无需创建新的数据类型(或新的类型)?

多米尼克(Dominique Devriese)

不幸的是,没有创建新数据类型(或新类型)的方法就无法解决。您正在寻找的似乎是类型级别的lambda(就像您在许多与Haskell相关的正式公式中一样,例如System Fw及其扩展名),但是不幸的是,Haskell没有类型级别的lambda。类型同义词可能看起来可以用于此目的,但是不幸的是,当提及它们时,必须完全应用它们。正如您自己提到的那样,您需要改用新类型或数据类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在实例声明中使用类型同义词?

来自分类Dev

使用类型同义词定义实例

来自分类Dev

找出类型同义词的类型

来自分类Dev

类型同义词导致类型错误

来自分类Dev

使用模板Haskell获取关联的类型同义词

来自分类Dev

使用特定的类定义类型同义词

来自分类Dev

在haskell中查找类型同义词

来自分类Dev

让Haskell区分类型同义词

来自分类Dev

定义类型同义词(GHC)的类型同义词时出现奇怪的错误

来自分类Dev

类型族作为类型同义词的参数

来自分类Dev

您为什么不能(完全)应用带有使用其他类型同义词的参数的类型同义词?

来自分类Dev

为什么关联的类型同义词不暗示约束

来自分类Dev

我的Haskell类型同义词有什么问题?

来自分类Dev

基于lambda / church布尔值的类型同义词

来自分类Java

Java泛型和类型同义词

来自分类Dev

一个类中的多个类型同义词

来自分类Dev

如何为类型类名称创建同义词?

来自分类Dev

Purescript 将类视为循环类型同义词

来自分类Dev

一起使用makeLenses,类约束和类型同义词

来自分类Dev

如何使用类型同义词重载运算符?

来自分类Dev

如何在Oracle中使用DBlink的同义词?

来自分类Dev

如何在Hibernate Search中使用Wordnet同义词?

来自分类Dev

Elasticsearch同义词映射是双向的吗?

来自分类Dev

Elasticsearch同义词映射是双向的吗?

来自分类Dev

Haskell术语:类型与数据类型的含义,它们是同义词吗?

来自分类Dev

模式同义词无法统一类型级别列表中的类型

来自分类Dev

由类型同义词中的函数依赖项绑定的“自由”类型变量

来自分类Dev

无法制作具有类型同义词的对象:类型

来自分类Dev

Azure搜索中的同义词映射,同义词短语

Related 相关文章

热门标签

归档