gpt4 book ai didi

haskell - GHC 无法推断未解除的种类

转载 作者:行者123 更新时间:2023-12-02 03:01:41 24 4
gpt4 key购买 nike

我遇到了由 Happy 生成的看似无效的代码。问题归结为 GHC 没有为函数推断多类类型签名。这是一个例子:

{-# Language MagicHash #-}

f x = ()

main = pure (f 1#)

由于 GHC 正在推断 f :: a -> ()哪里 a :: * ,这失败了
 • Couldn't match a lifted type with an unlifted type
When matching the kind of ‘GHC.Prim.Int#’
• In the first argument of ‘f’, namely ‘1#’
In the first argument of ‘pure’, namely ‘(f 1#)’
In the expression: pure (f 1#)

我可以打开任何语言编译指示来编译此代码吗?我知道理论上我可以只添加类型签名,但是,因为这是由 Happy 生成的代码,我不想手动修改任何内容。

最佳答案

正如@dfeuer 所暗示的那样,这是不可能的。在最坏的情况下,GHC 将不得不在整个项目中寻找给定函数的用法,以推断论证的轻重。

这被报告为 bug in Happy从那以后一直fixed .

关于haskell - GHC 无法推断未解除的种类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45472341/

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