Prawdopodobnie jest już newtype
która zmienia sens Ord, Bounded itp. Coś w stylu
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
Gdzie to działa w istniejących pakietach Haskell?
Uwaga: istnieje Reverse
Functor
, który robi coś zupełnie innego i na szczęście ma całkowicie niezgodny rodzaj.
Odpowiedzi:
9 dla odpowiedzi № 1Po prostu jest w środku Data.Ord
: Down
. (To nie ma Bounded
instancja).