Ah, got it. Thanks. I didn't realize instances of an imported module were also implicitly exported.
I should have looked at the report, however. For the future reference of others:
"Instance declarations cannot be explicitly named on import or export
lists. All instances in scope within a module are
always
exported and any import brings
all instances in from the
imported module. Thus, an
instance declaration is in scope if and only if a chain of
import
declarations leads to the module containing the instance declaration."
-- 5.4 Importing and Exporting Instance Declarations at
http://www.haskell.org/onlinereport/modules.html
It would definitely be nice to have a bit more control over importing/exporting instances. I noticed this idea has been discussed a few times already.
Sean