Предложение для объявлений / экземпляров локальных данных
Мне любопытно, и я не смог найти предложения на что-то подобное в Хаскеле. Рассмотрим, еслиsort
было написано, но неsortBy
.
sortBy :: forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy f = map getX . sort . map X
where
newtype X = X { getX :: a }
instance Ord X where
compare (X a) (X b) = f a b
Кто-нибудь видел это предложение?