Новый тип Haskell, который изменяет или переворачивает порядок

Там, вероятно, уже newtype что переворачивает смысл Ord, Bounded и т. д. Что-то вроде

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?

Примечание: существует ReverseFunctor, который делает что-то совсем другое, и, к счастью, имеет совершенно несовместимый вид.

1 ответ

Решение

Это просто в Data.Ord: Down, (Это не имеет Bounded экземпляр, хотя.)

Другие вопросы по тегам