Lang. (was Re: Alternative hierarchy proposal)

Malcolm Wallace malcolm@abbess.demon.co.uk
Mon, 12 Mar 2001 19:17:47 +0000


Marcin 'Qrczak' Kowalczyk wrote:

> there are several criteria for naming things, e.g.
> 
> * what kind of functionality (e.g. a HTML parser, a database interface),
> * conforming to what standards (e.g. Haskell 98, Posix, BSD,
>                                              ghc's / nhc98's extension),
> * what magic it requires to be implemented (pure Haskell wrapper,
>                                     needs heavy runtime system support),
> * where did it come from, i.e. author's / company's name.
> 
> For users the first category is the most important. For implementers
> all except the first.
> 
> I would try to use the first category as much as possible, and
> only make differences wrt. other categories deeper in the tree if
> needed.

I tend to agree with this.  The functionality should be primary in
any naming scheme.  The third category (magic required) can also
(sometimes) be important to an end-user - they need to know whether
a library can be used portably across compilers, but that is all.
I guess we might therefore want to consider moving Foreign from
    Haskell.Extensions.Foreign
to
    Haskell.Foreign
whilst keeping (for instance)
    Haskell.Extensions.Concurrent
where it is, because it is only available in ghc.  Or come to that,
maybe the latter really belongs in
    GHC.Concurrent
?  Maybe there is no need for an Extensions sub-tree at all - just
place them under the relevant implementation?

Regards,
    Malcolm