Есть несколько версий выступления Phil Wadler "Prepositions as types" на ютубе где он показывает примеры явной передачи такого вот dictionary(ну и там ещё есть интересные вещи)
Хорошо. Погуглю. Спасибо.
propositions https://ncatlab.org/nlab/show/propositions+as+types
Рекомендую поиграться с {-# language NamedFieldPuns #-} data EqC a = EqC { equals :: a -> a -> Bool } data OrdC a = MkOrdC { eqc :: EqC a , compare :: a -> a -> Ordering } bubbleSort :: OrdC a -> [a] -> [a] bubbleSort OrdC {compare} = _ которое почти то же самое, что и class Eq a where (==) :: a -> a -> Bool class Eq a => Ord a where compare :: a -> a -> Ordering sort :: Ord a => [a] -> [a] sort = _
Обсуждают сегодня