GHCi does not respect the default declaration in the module whose scope you are in. Instead, for expressions typed at the command line, you always get the default default-type behaviour; that is,default(Int,Double). It would be better for GHCi to record what the default settings in each module are, and use those of the 'current' module (whatever that is).
On Windows, there's a GNU ld/BFD bug whereby it emits bogus PE object files that have more than 0xffff relocations. When GHCi tries to load a package affected by this bug, you get an error message of the form Loading package javavm ... linking ... WARNING: Overflown relocation field (# relocs found: 30765) The last time we looked, this bug still wasn't fixed in the BFD codebase, and there wasn't any noticeable interest in fixing it when we reported the bug back in 2001 or so. The workaround is to split up the .o files that make up your package into two or more .o's, along the lines of how the "base" package does it.
GHCi does not keep careful track of what instance declarations are 'in scope' if they come from other packages. Instead, all instance declarations that GHC has seen in other packages are all available at the prompt, whether or not the instance really ought to be in visible given the current set of modules in scope.