约束不足的类型参数是否等效于值级别的强制转换?

时间:2018-08-17 21:07:13

标签: haskell polymorphism dependent-type

在Haskell中,可以将类型参数置于约束之下。一些已知的示例是集合c,它暗示元素e或镜头的类型,其中sa之间以及t与{ b,但在类型签名中找不到。

诸如功能依赖项,类型族之类的扩展允许在类型级别更精确地表达关系。但是当它们不完全限制选项时,它们是否等同于类型级别的强制转换?

虽然我相信答案是“否”,因为值转换可能在运行时“出错”,但是类型级别“ casts”在编译时就会“出错”……但是也许这就是发生的情况,而我却没有正确对齐类型?

还是它们在价值水平上与部分函数(或关系)更相关,必须避免某些选择?

0 个答案:

没有答案