Если у меня есть MultiParamTypeClass, скажите Dictionary a k v
(что бы это ни было, это * -> * -> *
), и я хотел бы сделать экземпляр для списков (то есть [(k,v)]
), возможно ли это?
Я понял, что компилятор жалуется, что [(k,v)]
является всего лишь видом *
, но возможно, чтобы этот список (в этом примере список ассоциаций) вел себя как Pair k v
, но все еще мог использовать тип списка Haskell?
В коде
class Dictionary a where
method :: Thing k v -> a k v
Я хотел бы сформировать
instance Dictionary [(k,v)] where
method = ...
Можно ли это сделать?Я понимаю, что есть расширение OverloadedLists, но мне бы хотелось что-то, что работает на вещи больше, чем литералы.