I thought only as constrained and more constrained is allowed, and less constrained is always an error. At least that's been my experience - if `Q<T: A>`, then I could never get `impl<T> Q<T>` working in any conditions until I added `where T: A`.
Do you happen to know the specific rules of when it's an error and when it's not?