当前行为
Prelude> show _
<interactive>:7:6:
Found hole ‘_’ with type: a0
Where: ‘a0’ is an ambiguous type variable
Relevant bindings include it :: String (bound at <interactive>:7:1)
In the first argument of ‘show’, namely ‘_’
In the expression: show _
In an equation for ‘it’: it = show _
期望的行为
如果GHC还告诉我类型化的孔具有Show
类型类约束,那就太好了。
杂项
GHC版本7.8.1
16
AFAIK,目前尚无法实现,但肯定会有用。为此,可能值得在GHC错误跟踪器上打开功能请求。
—
kosmikus 2014年
我同意这将是有用的。我在GHC 追踪中将
—
Dominique Devriese 2014年
现在你可以使用预型孔绝招:
—
phadej 2014年
show (undefined :: () -> ())
; GHC将在类型检查错误中提供更多信息。
这是功能要求还是实际问题?也就是说,您是否确定无法按照自己的意愿制作GHC,或者是否有可能通过当前的编译器获得所需的内容,但是不确定如何?
—
stakx-不再对2015年
@stakx两者都有一点。最初,当我写这个问题时,我很困惑为什么GHC不提供类型类约束,并且以为我在使用类型化的孔时错了。然后有人告诉我,目前无法做到这一点,但可以将其添加到GHC中。因此,我希望很快将其添加。许多人似乎想使用它。phadej的技巧似乎在同时起作用,但不如基于打孔的解决方案那么优雅或易于使用。
—
Wizek