いくつかのリングが標準機能を装備することができ、例えばヘッドより小さくなることはありませんしかし、私はこれを示す方法がわかりません。私はHaskellの制約は
instance (EuclideanDomain a, Eq a) => Ord a where
を実行しようとしましたが、これは私にいくつかの警告を与え、そして私は、関連するコンパイラフラグを有効にすると、それは「制約がインスタンスヘッドより小さくなることはありません」私に指示 - 私はUndecidableInstancesを有効にした場合、すべてが地獄に行きます。
私がしたいことをする方法はありますか?
制約が小さくなるとはどういう意味ですか?確かに「EuclideanDomain a'sの数は少なく、 'a'sですか? – Xodarap
@ Xodarap:「より少ないタイプのコンストラクタでラップされる」ように小さくなります。「このタイプの値がより少なくなります」ではなく – hammar
私は参照してください。 'f :: EuclideanDomain a => a - > Ordering'を実行すると、' f x = compare x x'はコンパイルされません。私は何が欠けていますか? – Xodarap