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