Packages and modules
brianh at metamilk.com
Wed Jul 5 09:51:15 EDT 2006
Simon Peyton-Jones wrote:
> In response to Brian and Ian's helpful comments, I've added a bunch
> more stuff to our proposal about packages. If I have missed
> anything, let me know.
> If you or anyone else thinks the choices made there are poor ones,
> continue to say so. It's a helpful process.
I think the proposed system is too complicated. I'd have thought there were
some simple aims:
1) Backwards compatibility so existing code doesn't break
2) Allow people to use per-package module namespaces in new code
3) Allow package names to be URLs (Marc Weber's idea
And the following possible solutions:
1) The current "import" syntax would refer to shared namespace imports
(exactly as at present)
2) A new keyword, "use", would indicate use of per-package namespaces
3) Putting the package name in quotes allows more complex package names
including URLs and packages located in a specific folder etc in future, and
also makes it clear that the package name is an OS filename (albeit
conforming to a special form) not a Haskell id, and also allows the "use"
syntax to be very concise since a quoted name cannot be confused with a
So instead of just taking this simple solution, the wiki proposal is instead
destroying the beauty of the per-package namespace idea by incorporating
into it the existing shared namespaces with their attendant problems,
instead of just letting the existing messy system die a natural death
through the syntactic isolation I proposed.
In three years' time, how easy will it be to explain Haskell's module system
to a new programmer?
Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us.
More information about the Glasgow-haskell-users