gpt4 book ai didi

haskell - GADT 头中的类型变量有意义吗?

转载 作者:行者123 更新时间:2023-12-03 15:06:58 34 4
gpt4 key购买 nike

这两个 GADT 声明之间有区别吗?

data A a b where
...

data A :: * -> * -> * where
...

最佳答案

没有区别。有人可能会认为,在构造函数签名中为它们使用不同的名称需要在头文件中不提及类型变量,如下所示:

data A :: * -> * -> * where
AN :: Num x => x -> b -> A x b
AS :: IsString s => s -> b -> A s b

但是,作为 the GHC Users Guide说……

Unlike a Haskell-98-style data type declaration, the type variable(s) in the data Set a where header have no scope.



...所以这也有效:
data A a b where
AN :: Num x => x -> b -> A x b
AS :: IsString s => s -> b -> A s b

关于haskell - GADT 头中的类型变量有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40787526/

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