public/private module sections (was: Haskell-prime Digest, Vol 2,
Issue 58)
John Meacham
john at repetae.net
Fri Feb 24 17:12:38 EST 2006
what about method and data constructors?
data public: Foo a = private: Bob | public: Baz
class Foo a where
private:
foo :: a
public:
baz :: a
I really like haskell's current module system. A whole lot. other than
the minor tweaks that have been mentioned. A really nice thing is that
it is all about the namespace. unlike other languages, like java where
your namespace is intrinsically linked to your class hierarchy, or C++
where bringing names into scope implies textual inclusion of arbitrary
code, haskell has the wonderful property that the module system is
purely about matching identifiers to their meaning. A side effect of
this is that you can determine what names are in scope purely by by
looking at the export/import lists of your modules and there is never a
need nor a reason to look anywhere else. it is all nice and
self-contained right there at the top of each module. moving to
individual annotations would be a large step backwards IMHO.
John
--
John Meacham - ⑆repetae.net⑆john⑈
More information about the Haskell-prime
mailing list