クラスの定義において、関数の引数や戻り値の部分を型変数でパラメータ化するように、
コンテキストの部分をクラス変数みたいなのでパラメータ化できないでしょうか。

たとえば

class C c where
 f :: (??? t) => Int -> t

のようなクラス宣言があったとして、この ??? の部分を
型クラス C のインスタンス型毎に変えたいです。

{-# LANGUAGE InstanceSigs #-}

instance C X where
 f :: (ClassA a) => Int -> a
 f v = ...

instance C Y where
 f :: (ClassB b) => Int -> b
 f v = ...

このようなことは可能でしょうか。