This is a proposed standardised layout for Haskell libraries, using the newly-proposed idea of module namespaces. It is intended firstly to give a flavour of how namespaces can help in organising library modules. I hope it is a reasonably convincing demonstration that namespaces are a Good Thing.
Its second purpose is to prompt discussion of how we, the Haskell community, would like to organise and develop our libraries towards the goal of a "Standard" set, available on all compiler and interpreter platforms. The particular layout shown here is a discussion-starter, not a final state. (There are whole areas that I know very little about, such as Algebraic and Numeric libraries, so there are bound to be gaps.) But together, we must work to create a consensus on naming issues like these.
The most important guiding principle, in my view, is: Death to Misc and Utils! Do not use a catch-all name for a category; only a little extra thought is required to devise an informative name. Your users will thank you!
+ Algebra + DoCon | + Geometric | + ... | + Data + Structures + Trees + AVL | | | + RedBlack | | | + BTree | | | | | + Queue + Bankers | | | + FIFO | | | | | + Collection | | + FiniteMap | | + Graphs + ... | | + Edison + .... | | | + Encoding + Binary | + Bits | + Bzip2 | + Gzip | + MD5 | + Database + HaSQL | + ODBC | + Debug + Observe | + QuickCheck | + Trace | + Graphics + UI + Gtk + Widget | | | + Pane | | | + Text | | | | | + FranTk + ... | | + Fudgets + ... | | + CleanIO + ... | | | + Drawing + HOpenGL + .... | | + Vector | | | + Format + Jpeg | + PPM | + ... | + Haskell + Language + CoreSyntax | | + Parser | | + TypeSystem + ... | | | + Plus + Concurrency | + Exceptions | + FFI | + Unsafe + IO | | + Coerce | | | + FunDeps | + Interface + GetOpt | + Readline | + Network + Socket | + Web + CGI | + URL | + Numeric + DSP + FFT | | + FIR | | + Noise | | + Oscillator | | | + Gaussian + ... | + Posix + ... | + Text + Html + ... | + LexerCombinators + Chakravarty | | + UU | | | + ParserCombinators + HuttonMeijer | | + Parsec | | + UU | | | + PrettyPrinter + Chitil | | + Hughes | | + HughesPJ | | + UU | | | + Xml + Combinators | + Parse | + PP | + Types | + Win32 + ... | + Std + Algebra + ... | + Data + ... | + Database + ... | + Debug + ... | + Graphics + ... | + Haskell + ... | + Interface + ... | + Network + ... | + Numeric + ... | + Text + ... . . .
Apologies for the ASCII formatting of this tree. I haven't been able to find a convenient way to draw it properly yet. Suggestions are welcome.