Hierarchy suggestions

Simon Marlow simonmar@microsoft.com
Tue, 27 Feb 2001 10:47:21 -0000

Firstly, I'd like to say this proposal is great.  We're in dire need of
extending the module namespace, and it's important that we do it in a
community-directed way.

Proposals 1 & 3: no problem.

Proposal 2: I think we should spend a lot of effort designing the layout
of the module hierarchy, at least the standard parts, to make it as
"future proof" as possible.  We really don't want to be reorganising
things later.

1) Std.

I have a feeling that the "Std." prefix is going to be annoying,
especially when libraries move from the base hierarchy to the Std
hierarchy.  It doesn't fit well with the idea that the hierarchy should
be as static as possible. =20

A portable application will only use libraries from the Std hierarchy,
so we should make this the default.  Non-standard libraries should get
the prefix, if any.

An alternative is to simply sanction each library individually, as the
interface is fixed and a portable, well-tested implementation exists.
Non-sanctioned libraries aren't necessarily provided by all of the main
implementations, and their interfaces may change (or even differ across

2) Haskell->Plus

At some point in the future, Haskell will no doubt include the FFI, at
which point the Haskell->Plus->FFI hierarchy won't make sense any more,
and we'll have to break lots of existing code to move the library
somewhere sensible.

I suggest just calling it "Foreign", and putting it near the top of the
hierarchy somewhere.  Similarly for Concurrent, Exceptions, etc.

I have a fairly complete hierarchy sketched out, but I'm going to revise
it based on your ideas and send it out later.