You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何带存在量化的记录使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 07:46:07