
Am Mittwoch, 22. Februar 2006 18:27 schrieb Malcolm Wallace:
[...]
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?
But whether a type is declared by data or by newtype is an implementation detail, so this distinction shouldn't be made in a part of the code which is supposed to specify an interface. On the other hand, if you export constructors too, the distinction between newtype and data might be important...
[...]
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.
Only those parts of datatype definitions which are exported. And we would have to include fixity declarations too.
[...]
Regards, Malcolm
Best wishes, Wolfgang