
On Wed, Nov 18, 2009 at 4:12 PM, Edward Kmett
Qualified imports are some times problematic when you need to work with classes from the module. You can't define a member of two instances from different two modules that define classes with conflicting member names. This can lead to situations where you have no option but to have orphan instances.
module Bar where class Foo a where foo :: a
module Baz where class Quux a where foo :: a
module Quaffle where import qualified Bar import qualified Baz
instance Bar.Foo Int where Bar.foo = 1 -- ^- syntax error.
instance Baz.Quux Int where Baz.foo = 2
I suppose this could possibly be fixed if something deep in the parser allowed a QName there.
Try Quaffle without the qualifications.
module Quaffle where import qualified Bar import qualified Baz
instance Bar.Foo Int where foo = 1
instance Baz.Quux Int where foo = 2
--
Dave Menendez