次のようなことはができた。

data A a b = A a b
instance Functor (A a) where
  f `fmap` (A a b) = A a (f b)

次のようなことはできる?

instance Functor (A * b) where
  f `fmap` (A a b) = A (f a) b

* は一つ目の型引数に対して Functor を定義しているつもり。

もちろんこれはエラーなんだけど、意図は伝わったと思う。
GHC の拡張機能でできるようになる?