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

姆沃姆巴特

有没有办法根据关联的类型同义词定义类型同义词?(不确定我是否有正确的术语。)

{-# LANGUAGE TypeFamilies #-}

class Reproductive a where

  -- | A sequence of genetic information for an agent.
  type Strand a

  -- | Full set (both strands) of genetic information for an organism.
  type Genome a = (Strand a, Strand a)

这是我收到的错误消息。

λ> :l stackOverflow.hs 
[1 of 1] Compiling Main             ( stackOverflow.hs, interpreted )

stackOverflow.hs:9:8: error:
    ‘Genome’ is not a (visible) associated type of class ‘Reproductive’
  |
9 |   type Genome a = (Strand a, Strand a)
  |        ^^^^^^
Failed, no modules loaded.

我可以在(Strand a, Strand a)任何地方使用,但使用Genome a.

恶梦

您可以与类分开定义类型同义词:

{-# LANGUAGE TypeFamilies #-}
  
-- | Full set (both strands) of genetic information for an organism.
type Genome a = (Strand a, Strand a)

class Reproductive a where

  -- | A sequence of genetic information for an agent.
  type Strand a

或者,如果您希望能够为某些实例覆盖它,那么您可以像这样定义它:

{-# LANGUAGE TypeFamilies #-}

class Reproductive a where

  -- | A sequence of genetic information for an agent.
  type Strand a

  -- | Full set (both strands) of genetic information for an organism.
  type Genome a 
  type Genome a = (Strand a, Strand a)

这似乎是多余的,但您可以将第一type Genome a行视为签名,将第二行视为默认实现。在这种情况下,签名是简单type Genome a :: *type Genome a短期的,但它可以比变得更加复杂。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

需要一个haskell相关类型同义词的typeclass实例

来自分类Dev

在WordNet中搜索同义词只能得到一个结果

来自分类Dev

使用同义词访问另一个模式中的访问序列

来自分类Dev

在haskell中查找类型同义词

来自分类Java

在Java中,是提供参数,以延长一个参数化接口的它的精确同义词的接口?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

solr:当一个单词被多单词同义词替换时,单词顺序丢失

来自分类Dev

给定两个词,找出它们是否在同一个同义词集中

来自分类Dev

找出类型同义词的类型

来自分类Dev

类型同义词导致类型错误

来自分类Dev

让Haskell区分类型同义词

来自分类Dev

使用类型同义词定义实例

来自分类Dev

当一个单词的同义词与它的复数形式相同时:如何命名列表和实例?

来自分类Dev

一个可以用多个函数伪名/同义词调用的函数

来自分类Dev

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

来自分类Dev

oracle中同义词之间的区别

来自分类Java

在Java中输入同义词

来自分类Dev

在模式同义词中调用函数

来自分类Dev

MarkLogic中的同义词搜索

来自分类Dev

Solr 查询结果中的同义词

来自分类Dev

WordNet中单词的同义词集

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

Related 相关文章

  1. 1

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

  2. 2

    需要一个haskell相关类型同义词的typeclass实例

  3. 3

    在WordNet中搜索同义词只能得到一个结果

  4. 4

    使用同义词访问另一个模式中的访问序列

  5. 5

    在haskell中查找类型同义词

  6. 6

    在Java中,是提供参数,以延长一个参数化接口的它的精确同义词的接口?

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

    solr:当一个单词被多单词同义词替换时,单词顺序丢失

  12. 12

    给定两个词,找出它们是否在同一个同义词集中

  13. 13

    找出类型同义词的类型

  14. 14

    类型同义词导致类型错误

  15. 15

    让Haskell区分类型同义词

  16. 16

    使用类型同义词定义实例

  17. 17

    当一个单词的同义词与它的复数形式相同时:如何命名列表和实例?

  18. 18

    一个可以用多个函数伪名/同义词调用的函数

  19. 19

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

  20. 20

    oracle中同义词之间的区别

  21. 21

    在Java中输入同义词

  22. 22

    在模式同义词中调用函数

  23. 23

    MarkLogic中的同义词搜索

  24. 24

    Solr 查询结果中的同义词

  25. 25

    WordNet中单词的同义词集

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

热门标签

归档