Lang. (was Re: Alternative hierarchy proposal)

Malcolm Wallace
Sat, 10 Mar 2001 12:24:13 +0000

Ian Lynagh wrote:

> Data Database Debug Graphics Haskell Network Numeric Posix Text
> Data Database Debug Graphics Lang    Net     Numeric Posix Text
> Personally I prefer the latter list,

I really prefer full spellings to abbreviations - otherwise we
might end up with

  Data DB Dbg Gr Hs Lang Net Num Posix Txt

which is positively horrible.  However, I could probably live with
some shortening - Network to Net is common enough in everyday speech.

One abbreviation I have always disliked intensely though is Lang.
It just doesn't convey any clear meaning to me.  Ok, so it is
reasonably obvious that it is short for Language, but even then,
on its own, it is an ambiguous category.  Does it refer to natural
languages, formal languages, programming languages, or this specific
programming language?  If the latter, then Haskell.Language seems
clearer to me, or come to that, just Haskell.

The other thing that bothers me about Lang is that I don't see the
connection between many of the things proposed to go into it, and
the Haskell language itself.  The FFI is the best candidate, because
it clearly extends the source language.  Likewise, Generics and
Dynamic.  But why should libraries like Array, Memo, and Monad
be in Lang?  They don't extend the language.  And of course some
things /not/ currently in Lang seem to have everything to do with
the language - like the Haskell source parser, abstract syntax,
source pretty-printer etc.

These were the reasons I proposed a hierarchy like


Here in my scheme, Haskell.Plus contains extensions to the language,
and Haskell.Language contains utilities to manipulate the source
language itself.  Simon proposed Haskell.Source for the latter, which
would also be a fine name, provided there were no Haskell.Lang
category to confuse you.

My final difficulty with the Lang category is that, if it contains
extensions to the language, people will be misled into thinking that
the extensions are truly a part of the language standard.  After all,
they are categorised in Lang!  In my opinion, a clearer name is needed,
to emphasise the extensional nature of some of the libraries.