Johan,
to summarize:
1. If an instance is marked as OVERLAPPABLE, then clients may overlap it without having any pragmas
2. If an instance is NOT marked OVERLAPPABLE, then clients may still overlap it, but then they have to use an explicit OVERLAPPING pragma.
So you should either add OVERLAPPABLE to your library, and then clients don't need to do anything, or
you should remove it, and require that clients add OVERLAPPING.
Note that using this mechanism across modules can be quite error prone. For example, you have to be very careful
not to use an OVERLAPPABLE instance in your library, as if you do parts of the program might end up using
one instance, and other parts may end up using another instance---GHC has no way of knowing about overlapping
instance in client libraries, so it will simply use the best possible *local* instance.
-Iavor