時々、Haskell がインスタンス ヘッドのみに一致するという「機能」に出くわします。つまり、
instance (a ~ NewDataTyp b) => C a
はどのような型にも一致するようになりました。つまりC
、プログラム内で willの別のインスタンス宣言を書くと、コンテキストのために競合する可能性がない場合でも、エラーになります。時には、克服するのに多くの努力が必要です。この制限を回避するために、何百行ものコードを再構築する必要がありました。a ~ NewDataTyp b
表現力を優先して設計された言語拡張または派生言語 (Curry? Agda?) はありますか? これにより、(a) 型クラスの世界の開放性 (b) 多項式時間型チェックが犠牲になる可能性があります。
編集-- 質問に興味がある人は、このページも興味深いかもしれません: http://www.haskell.org/haskellwiki/Future_of_Haskell