Export lists in modules
wolfgang at jeltsch.net
Wed Feb 22 15:59:52 EST 2006
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
> > 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.
More information about the Haskell-prime