我知道对于具有类型类实例的Num类型,必须有一个 fromEq和Show
class (Eq a, Show a) => Num a
我想知道为什么需要它Eq而不是Ord. Eq数字类型在 in但不在 in是否有意义Ord?
例如,复数可以进行加法、减法、乘法和相等性测试,但不能排序。请参阅Complex a基础中的 Data.Complex。
请注意,EqandShow约束也被广泛认为是错误特征。例如,它们会阻止Num包含函数的事物的完全有效实例。在最新版本的 GHC 中,这些约束也被删除,Num完全没有超类约束。