Alternative hierarchy proposal.
Ian Lynagh
igloo@earth.li
Fri, 9 Mar 2001 00:46:06 +0000
On Thu, Mar 08, 2001 at 08:24:26PM +0000, Malcolm Wallace wrote:
> Simon Marlow wrote:
> >
> > Here's my attempt at a library hierarchy. No ASCII art
>
> Just to let everyone know that Simon's proposed tree is now on the
> web alongside mine. See:
>
> http://www.cs.york.ac.uk/fp/libraries/
Ermmm, OK, so what now?
What we currently seem to have seems rather akin to the Bit(s) situation
this is meant to avoid :-)
Anyway, here are my opinions and an attempt to merge the two together.
Flames^WComments welcome.
Here is a list of common top level hierarchies:
Data Database Debug Graphics Haskell Network Numeric Posix Text
Data Database Debug Graphics Lang Net Numeric Posix Text
Personally I prefer the latter list, and as I've said before I think
POSIX would be better split up.
In MW:
* Algebra
Seems fair enough
* Interface
Not sure about the name of this - contains GetOpt and Readline
GetOpt might belong better under parsing somewhere and ReadLine
in IO? Having just noticed them on SM, they are next to IO under
System.
* Win32
Dunno what would go in here. Possibly OS.Win32 or something would
be better regardless to kep the top level branches to a minimum?
In SM:
* System
THis is equivalent to Haskell.Plus.Unsafe I think. Personally I
think this is a good idea as it is not implementable in Haskell.
I'm not sure the Plus distinction is necessary though.
* Source
This appears to be parsers etc for Haskell code, and I don't see
why it should be here rather than Text.Haskell next to HTML, XML
etc
* Concurrent
I don't know anything about this but it looks fair enough
* Parallel
As the comment is "as hslibs/concurrent/Parallel" should it not go
under Concurrent?
* Prelude
MW has Haskell.Language.CoreSyntax which I think makes more sense
* GHC
Probably better under Lang.CompilerSpecific.GHC?
There's also the Std vs Non-std top branch debate. I agree with the
non-std myself.
The SM trees in general seem a bit better thought out to me too, e.g.
I don't think Bits or MD5 belong under Data.Encoding.
To summarise I think something like:
Algebra: As MW
Concurrent: As SM plus Parallel
Data: As SM
Database: As SM and MW
Debug: As SM and MW
Graphics: As MW (more detailed than SM)
Lang: As SM, plus CompilerSpecific.*, Prelude, { System.* from SM plus POSIX plus BSD }
Net: As SM (plus a POSIX module if POSIX talks about this)
Numeric: As SM and MW
OSSpecific: As explained
Text: As SM and MW
User: your@email.address gets address.email.your.* off of this
BTW, the first bit of Data is repeated twice on the SM list
Thanks
Ian
--
Ian Lynagh - <igloo@earth.li>
http://c93.keble.ox.ac.uk/~ian/haskell/