現在の行動
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 _
望ましい行動
型付きの穴にShow
型クラスの制約があることもGHCが教えてくれるといいですね。
その他
GHCバージョン7.8.1
16
私の知る限り、これは現在可能ではありませんが、確かに役立ちます。これについては、GHCバグトラッカーで機能リクエストを開く価値があるかもしれません。
—
kosmikus 14
これが役立つと私は同意します。私はそれをGHC トラックの
—
Dominique Devriese
今のところ、型前穴のトリックを使用できます
—
phadej 14
show (undefined :: () -> ())
。GHCは型チェックエラーで詳細を通知します。
これは機能のリクエストですか、それとも実際の質問ですか?つまり、望みどおりにGHCを作成する方法がないこと、または現在のコンパイラーで必要なものを取得できる可能性があることは確かにわかっていますが、その方法はわかりませんか?
—
stakx-2015年
@stakx両方のビットです。もともとこの質問を書いたとき、GHCが型クラスの制約を提供しなかった理由が混乱し、型付きホールを間違って使用していると思っていました。次に、現在これを行うことは不可能ですが、GHCに追加できる可能性があると一部の人は私に言いました。それで、それがすぐに追加されることを望んでいました。多くの人がそれを使いたいようです。phadejのトリックは当面はうまくいくようですが、型付きの穴ベースのソリューションほどエレガントではなく使いやすいものではありません。
—
Wizek 2015