
Simon Marlow wrote:
I disagree. Lang (or Language if you like, or HaskellLanguageFeatures) is a *semantic* category. It contains libraries which provide access to language features.
Are you saying that there are language features which cannot be accessed without these libraries?
but in most cases it's obvious what belongs in Lang, and that's the main thing.
That's just the trouble: I don't find the contents of Lang to be obvious at all. I simply don't see the semantic relationship between the various modules. If I, as a Haskell language implementor, have difficulty understanding it, I'm sure other people will too.
On the other hand, Haskell in your proposal isn't a semantic category. The similarity between the contents seems to be in name only: it's like saying that "Biography" and "Biology" books belong on the same shelf because they both begin with "Bio".
Well, I disagree completely. I proposed "Haskell." precisely because it /is/ a semantic category, in contrast to "Lang." But that's just my view. Both you and Marcin don't see the connection, so I'll happily retract that part of my layout proposal, and search for an even better categorisation.
By all means change the name "Lang" to something more mnemonic and unambiguous, but I like the current meaning (and I have to admit it was chosen for its similarity to Java and the existing hslibs layout).
I'm afraid I don't know enough about Java even to know what java.lang.* contains! And my confusion about Haskell.Lang. applies equally to hslibs/lang. I can't think of a less ambiguous name for the category, because I simply don't know what the category is.
I don't agree with separating extensions (as you probably noticed from my proposal :-). If we separate language extensions into a separate hierarchy, code will be broken when/if these extensions become part of the base language.
I understand. I'm even beginning to shift my point of view towards yours. But there remains a difficulty. What if two people develop similar extensions, but with different syntax/semantics, each in a different compiler?
I *do* however believe that extensions should be standardised, so that if a compiler implements a particular extension, it should match other implementations of that extension.
That depends on whether the original author of the extension got the design right, doesn't it? :-) Regards, Malcolm