是否可以使Level
成为Eq
和Ord
的实例?
instance Eq Ord Level where
compare First Second = LT
...
我试过这个
instance (Ord, Eq) => Level where ...
但我有错误
‘compare’ is not a (visible) method of class ‘Level’
我知道我可以在deriving (Eq)
上使用data Level
。但我不能改变我的data
。
答案 0 :(得分:7)
使用两个实例
instance Eq Level where
x == y = ...
instance Ord Level where
compare x y = ...
或者,使用standalone deriving extension:
{-# LANGUAGE StandaloneDeriving #-}
... -- ^^^^^^^^^^^^^^^^^^ must be at the top of the file
deriving instance (Eq Level)
deriving instance (Ord Level)