/ / Haskell newtype que invierte o invierte el orden: haskell, order, newtype

Haskell newtype que invierte o cambia orden - haskell, orden, newtype

Probablemente ya hay una newtype que cambia el sentido de Ord, Bounded, etc. Algo a lo largo de las líneas de

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

¿Dónde vive esto en los paquetes de Haskell existentes?

Nota: hay una existente Reverse Functor, que hace algo muy diferente, y afortunadamente tiene un tipo completamente incompatible.

Respuestas

9 para la respuesta № 1

Es simplemente en Data.Ord: Down. (Esto no tiene una Bounded ejemplo, sin embargo.)