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

如何让GHC确认该pattern synonym为COMPLETE完备匹配?

解决方案

你需要在COMPLETE编译指令中显式声明该模式同义词所匹配的值的多态类型,正确写法如下:

{-# COMPLETE Call :: forall env m. env #-}

说明

  • 报错的根本原因是多态模式同义词的COMPLETE标记无法被GHC自动推断覆盖范围,需要显式指定它匹配的目标值的类型,而非模式同义词本身的完整类型。
  • 你的Call模式作用是匹配类型为env的值,因此仅需要在指令中给出匹配目标的多态签名forall env m. env即可,无需包含模式的入参类型部分。
  • 添加该声明后GHC会识别出所有对env类型值使用Call的匹配都是完备的,不会再额外要求MonadFail约束。

内容的提问来源于stack exchange,提问作者danidiaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:06:03