The fact the ordering matters is a well-known limitation.
(Basically with constraints are applied incrementally.)
But maybe it was not noted before that this makes impossible to instantiate mutually recursive types.