I don't know if this is exactly what you were expecting as a dummy argument, but I solve this kind of issues like this:
_L = undefined
class C a where
type TT a
val :: a -> TT a
instance C () where
type TT () = ()
val _ = ()
instance (C a, C b) => C (a, b) where
type TT (a,b) = (TT a, TT b)
val _ = (val (_L :: a),val (_L :: b))
Why normal unification (val :: TT a) does not work I can't say why, but this kind of behavior is not solely for type families.
Cheers,
hugo