In writing some code which uses a lot of monads with underlying types which use constraints, even simple errors can lead to extremely hard to read error messages.  The main reason is that the two types given in errors are partially expanded, to different levels.  This frequently means that the part where the type checker detects a mismatch is (extremely) opaque to human eyes.

In that case, it would actually be preferable to fully expand the types.  Yes, that will produce wallpaper.  But at least the mismatch should be considerably easier to catch.

Does this already exist, or should I submit a feature request?

Jacques