Jens' question gave my a perfect opportunity to open my a pet peeve of
mine: the ditatorship of `Main'.
In Haskell, the `main' function must reside in the `Main' module.
Add to this that the `Main' module must reside in a `Main' file and
you have an unfortunate consequence that you can only have one `Main'
function in each directory. This in turn means that to have, for
example several variants of a program, you *must* defer to either
messing with a preprocessor or dealing with multi-directory
compilation, not a pretty sight in either case and especially daunting
to a beginner.
In this Haskell is in contrast to most other popular programming
language. The alternative seems quite straightforward and there are
no technical difficulties:
1) Accept the `main' function can be put in any module, and/or
2) Introduce a nothing of "anonymous" modules, of which the file
name can be anything.
I'd prefer 1) alone.
/Tommy