Как дополнительно ограничить существующий класс типов в Haskell

Есть ли способ дополнительно ограничить контекст существующего класса типов?

Например, класс типа Functor:

class Functor f where
    fmap :: (a -> b) -> f a -> f b

Это определение класса не требует, чтобы a или b были элементом Show . Кроме того, этот класс типов является классом, который я включил сам, поэтому я не могу повлиять на определение классов. Возможно ли позже разрешить только те a и те b, которые являются членами Show?

5
задан Brian Tompsett - 汤莱恩 6 June 2015 в 22:31
поделиться