Haskell スタイルの型クラスと ML スタイルのモジュールが、インターフェースを指定するための異なるメカニズムを提供することはよく知られています。それらは (おそらく) 同等の能力を持っていますが、実際にはそれぞれに利点と欠点があります。
私は言語機能に関しては少し包摂主義者なので、私の質問は次のとおりです。Haskell に ML スタイルのモジュールを追加する際の主な理論上の問題は何ですか? 次の行に沿った回答に興味があります。
ML スタイルのモジュールとの相互作用が不十分な既存の型システム機能はどれですか? (不十分な相互作用の例は、fandeps が技術的に関連付けられた型と同等であるにもかかわらず、GADT と関数の依存関係です!)
ML スタイルのモジュールをコンパイルするために、コンパイラ側であきらめなければならないことは何ですか?
ML スタイル モジュールは型推論とどのように相互作用しますか?
関連読書: