Есть ли способ дополнительно ограничить контекст существующего класса типов?
Например, класс типа Functor
:
class Functor f where
fmap :: (a -> b) -> f a -> f b
Это определение класса не требует, чтобы a
или b
были элементом Show
. Кроме того, этот класс типов является классом, который я включил сам, поэтому я не могу повлиять на определение классов. Возможно ли позже разрешить только те a
и те b
, которые являются членами Show
?