When given the ability to qualify the instances you import you lose confluence of instance resolution. This is BAD.
We rely on confluence to enable us to move class constraints to where they are used rather than have to carry them around in every object.
Scala tries to get away with having the ability to explicitly pass dictionaries around and the result is frankly a muddled mess. Monad transformers wind up nigh unusable, sets can't use efficient hedge merges, etc.
Explicitly enumerating instance imports is one of those things that seems like a good idea until you actually explore its consequences.
I can't defend the ByteString API on the other hand. ;)
That said, I do not find it particularly "Haskelly".
We rely on confluence to enable us to move class constraints to where they are used rather than have to carry them around in every object.
Scala tries to get away with having the ability to explicitly pass dictionaries around and the result is frankly a muddled mess. Monad transformers wind up nigh unusable, sets can't use efficient hedge merges, etc.
Explicitly enumerating instance imports is one of those things that seems like a good idea until you actually explore its consequences.
I can't defend the ByteString API on the other hand. ;)
That said, I do not find it particularly "Haskelly".