The old model was that every instance is potentially overlappable; and
you only need the flag when you *use* the instances. But people
complained that the clients of their library should not need to know
"import Foogle and use -fallow-overlapping-instances".
I think that any module that depends on this feature in any way should require the flag.
Foogle might define some overlapping instances which are meant to be used only in its implementation--that is, users of Foogle aren't meant to make use those instance declarations. In that scenario, I could see a case for not requiring importing modules to specify the flag. But, I think that depends on a mechanism for controlling whether or not an instance declaration get exported in order to be useful.
- Brian