gpt4 book ai didi

haskell - 如何声明 newtype 语句中的类型变量属于某个类型类的类型?

转载 作者:行者123 更新时间:2023-12-04 23:51:00 28 4
gpt4 key购买 nike

假设我有这个新类型:

newtype SomeType a = SomeType { foo :: OtherType a }

我要确保 a是可显示的(属于类型类 Show x )。

我如何确保? (这甚至可能吗?)

加分项:我是否正确使用了术语?

最佳答案

使用 DatatypeContexts 是可能的扩展,但强烈建议不要这样做:

newtype Show a => SomeType a = SomeType { foo :: Maybe a }

建议对使用 SomeType 的函数进行约束或使用 GADT。有关更多信息,请参阅这些问题的答案。

Alternative for deprecated -XDatatypeContext?

DatatypeContexts Deprecated in Latest GHC: Why?

基本上,它不会添加任何有用的东西,它使您必须将约束放在原本不需要的地方。

关于haskell - 如何声明 newtype 语句中的类型变量属于某个类型类的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22212317/

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