"Simon Marlow" <[EMAIL PROTECTED]> wrote: > You're combining two extensions here - type signatures in export lists > and tagging exported entities. Not a problem, but I don't think > they're inextricably linked.
Indeed. I made them separate pages on the wiki. They were combined in my email only because Simon PJ asked how they related to each other. Although I now see that was not really his question at all. > But you don't need to go so far as to indicate > the difference between type/data/newtype - just differentiating > classes from tycons is enough to separate the namespaces. Yes. However it could be slightly confusing that one writes "newtype" in the module body, but "data" in the module header? > It's less clear to me whether type and data/newtype > should be distinguished or not, which is why I asked the question. They are already distinguished in ghc. It always complains to me when I write Foo(..) in an export list, where the Foo is a type synonym rather than a datatype. (Not that I necessarily agree with ghc's behaviour here... :-) You will notice that for this reason, the export production for "type Foo" does not permit a subordinate list. However, I would be equally happy to combine type/newtype/data into a single keyword for exports. > BTW, I think Simon PJ was asking about how to *declare* types & > classes in export lists, given that you're adding signatures to export > lists which are a kind of declaration. If you want to put more of the > interface into the export list, shouldn't you put it all in? Yes, I see the point. In the fullness of time, perhaps we will indeed specify the module interface in full, including datatype definitions. But for the moment, I am more interested in regularising existing practice. Regards, Malcolm _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://haskell.org/mailman/listinfo/haskell-prime