Is there a way to make GHC provide the type class constraints of typed holes?
当前行为
1 2 3 4 5 6 7 8 9 |
期望的行为
如果ghc也告诉我类型化的hole有
GHC版本7.8.1
多亏了@dominiquedevriese的GHC票,现在这张卡已在GHC 8.0中修复。
由于扩展类型默认,这在GHCI中并不明显。举个例子,
1 2 3 4 5 6 7 8 9 10 |
孔的类型默认为
但是,如果您使用ghc编译或禁用ghci中的扩展默认规则(通过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <interactive>:3:1: error: ? Ambiguous type variable ‘a0’ arising from a use of ‘show’ prevents the constraint ‘(Show a0)’ from being solved. Probable fix: use a type annotation to specify what ‘a0’ should be. These potential instances exist: instance Show Ordering -- Defined in ‘GHC.Show’ instance Show Integer -- Defined in ‘GHC.Show’ instance Show a => Show (Maybe a) -- Defined in ‘GHC.Show’ ...plus 22 others ...plus 11 instances involving out-of-scope types (use -fprint-potential-instances to see them all) ? In the expression: show _ In an equation for ‘it’: it = show _ <interactive>:3:6: error: ? Found hole: _ :: a0 Where: ‘a0’ is an ambiguous type variable ? In the first argument of ‘show’, namely ‘_’ In the expression: show _ In an equation for ‘it’: it = show _ ? Relevant bindings include it :: String (bound at <interactive>:3:1) |
号
不,目前是不可能的,但可以根据推测加入温室气体控制。