[Haskell-cafe] New type of ($) operator in GHC 8.0 is problematic

Joachim Durchholz jo at durchholz.org
Sat Feb 13 09:04:14 UTC 2016


Am 13.02.2016 um 08:31 schrieb Christopher Allen:
> This is not how people think about, talk about, or motivate typeclasses in
> my experience. I haven't run into anyone fool-hardy enough to suggest a
> global namespace of unique instances getting provided by the compiler is a
> vehicle for modularity-via-(abstraction|sealing|etc.) YMMV

Well, make me the first one to do that ;-)
Not for typeclasses. I suspect that namespaces and visibility should be 
managed independently of adaptation to the local needs, and I also 
suspect that both typeclasses and SML modules try to do both, making it 
hard to understand these aspects in isolation.

The quoted paragraphs were a comparison.
It seems that the SML folks are about namespace collisions of stuff from 
within a module. If that's a problem in Haskell, then that's an 
emarrassing weakness. If the SML folks think that's already "proper 
namespace management", they are mistaken (sorry folks), you need to deal 
with cases where module names themselves conflict.

It's easy to underestimate the effect.
For me, everything I code and vaguely expect to ever become public, I 
simply put into the org.durchholz namespace. That's my personal DNS 
name, so whenever I get around to actually publish something, at least I 
don't have to worry about having to rename uses lay_golden_eggs module 
because Goose Inc. already took that particular place in the global 
namespace. Even better, I don't have to worry about contacting everybody 
who uses my code to update it with the new name.

[Please don't answer directly and CC to Haskell-Cafe, that's defeating 
my mailer's "reply-to-list" feature.]


More information about the Haskell-Cafe mailing list