@ DominiqueDevriese'in GHC bileti sayesinde bu sorun artık GHC 8.0'da düzeltildi .
Genişletilmiş tür varsayılanı nedeniyle , bu GHCi'de hemen açık değildir. Örneğinizle,
> show _
<interactive>:7:6: error:
• Found hole: _h :: ()
Or perhaps ‘_h’ is mis-spelled, or not in scope
• In the first argument of ‘show’, namely ‘_h’
In the expression: show _h
In an equation for ‘it’: it = show _h
• Relevant bindings include
it :: String (bound at <interactive>:7:1)
deliğin tipi varsayılan olarak ayarlanmıştır ()
. Bu görünüşe göre istenen davranıştır , ancak genişletilmiş varsayılan ayarlamanın delikler için geçerli olmaması gerektiğine dair bir argüman olmasına rağmen (bunlar için genel bir kullanım derleyicinin size çıkarılan türü söylemesini sağlamaktır).
Bununla birlikte, GHC ile derlerseniz veya GHCi'de (aracılığıyla :set -XNoExtendedDefaultRules
) genişletilmiş varsayılan kuralları devre dışı bırakırsanız , iyileştirmelerin sonucunu görürüz:
<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)