Подтвердить что ты не робот

Предложение для локальных деклараций/экземпляров данных

Мне любопытно и не удалось найти предложение о чем-то подобном в Haskell. Подумайте, было ли написано 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

Кто-нибудь видел это предложение?

4b9b3361

Ответ 1

По-видимому, локальные экземпляры кратко обсуждались в списке рассылки Haskell Prime: http://web.archiveorange.com/archive/v/eKcS7T2qBpy7czBE2Jei и более полно в 6 th глава статьи Олега "Функциональная жемчужина: неявные конфигурации". Однако я ничего не слышал о локальных объявлениях данных.