Probabilmente c'è già un newtype
che ribalta il senso di Ord, Bounded, ecc. Qualcosa sulla falsariga di
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
Dove vive questo nei pacchetti Haskell esistenti?
Nota: c'è un esistente Reverse
Functor
, che fa qualcosa di molto diverso, e fortunatamente ha un tipo completamente incompatibile.
risposte:
9 per risposta № 1È semplicemente dentro Data.Ord
: Down
. (Questo non ha un Bounded
esempio, però.)