9
Там, наверное, уже есть newtype
, что переворачивает смысл Ord, Bounded и т.д. Что-то вдоль линийHaskell Newtype, который меняет или переворачивает порядок
newtype FlipOrd a = FlipOrd {unFlip :: a} deriving (Eq)
instance (Ord a) => Ord (FlipOrd a) where
compare = flip compare
instance (Bounded a) => Bounded (FlipOrd a) where
minBound = FlipOrd maxBound
maxBound = FlipOrd minBound
Где это жить в существующих пакетах Haskell?
Примечание: Есть существующий Reverse
Functor
, который делает что-то совсем другое и, к счастью, имеет совершенно несовместимый вид.
Спасибо. Я не возражаю против дублирования экземпляров, подобных типам; если он добавлен в какой-то другой код, компилятор расскажет мне об этом, и его легко исправить (просто удалите один экземпляр). – Cirdec