为何带存在量化的记录使用Standalone Deriving会因刚性类型失败
存在类型的Eq实例派生问题
我正尝试对比关联类型与存在类型,编写了如下Haskell代码片段:
{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE StandaloneDeriving #-} import Prelude data App = forall t. Eq t => App { f :: t } deriving instance Eq App
类型检查时报错:
无法匹配期望类型‘b’与实际类型‘b1’
‘b1’是一个受约束的刚性类型变量
此前曾在技术社区看到过类似代码片段被作为解决方案,也发现了一个可能相关的GHC官方问题,但禁用PolyKinds扩展或Polysemy插件均无效果。当前使用GHC 9.2.5版本。
附言:实际上关联类型与存在类型这两种方式都不支持自动派生Eq实例。
内容的提问来源于stack exchange,提问作者Daniil Iaitskov
相关产品推荐
相关产品推荐

