gpt4 book ai didi

haskell - :~: and :~~: equalities? 和有什么区别

转载 作者:行者123 更新时间:2023-12-04 18:10:57 24 4
gpt4 key购买 nike

Data.Type.Equality 定义了两个类型级别的等式::~::~~: .据说它们分别代表同质和异质平等,但我真的看不出它们之间有什么区别。它是什么?
老实说,由于类型系统中值、类型和种类之间的严格界限,我看不到在 Haskell 类型中实现真正的异构平等的方法。

最佳答案

区别在于它们的种类:

type (:~:)  :: k  -> k  -> Type
type (:~~:) :: k1 -> k2 -> Type
前者只接受两个具有相同种类的类型参数,而后者没有这样的限制。
类型 Bool :~: Maybe是恶意的(它会触发一个 kind 错误),而 Bool :~~: Maybe善良。后者是空的,但至少我们可以在不触发错误的情况下编写它。

关于haskell - :~: and :~~: equalities? 和有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71251390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com