Data.Constraint.Forallの背後にある考え方は、私が理解しているように、実装で強制を使用することですが、型システムを使用して安全性を確保します。後者に関して2つの質問があります。
- なぜ2つのスコーレム変数(AとB)が必要なのですか?制約が「不明」タイプによって満たされる場合、それは多形であると想像します。2番目のタイプはどのように安全性を高めますか?
- これらのタイプがスコーレム変数と呼ばれるのはなぜですか?存在記号を取り除くためにスコーレム化が使われていると思いましたが、ここでは全称記号が見られます。私が見逃したサインフリッピングはどこかにありますか?