The following code doesn't compile, but it seems sensible enough to me. Is this a limitation of GHC or is there something I'm missing? class C (A x) => C x where type A x :: *
class C (A x) => C x where type A x :: *