I know I do not need these constraints, it was just the simplest way I found to explain the problem.
I have fought about that: I was not expecting F d c ~ F a (c,a) not mean that F d ~F a /\ c ~(c,a), I thought the whole family was "parameterized".
If I encoded the family
type family F a x :: *
F d c ~ F a (c,a) would be semantically different, meaning that this "decomposition rule" does not apply?
Thanks,
hugo