I know I wasn't the intended recipient of this question, but I also lament this, so I'll answer for myself.
> So? That just means that the file name of Program1.hs, > Program2.hs, etc will be different from the name of the > module that they contain. The problem is that often you'll have a library which you import in a lot of programs which you also want to be executable. For example, I have a module: NLP.Vocabulary which provides an abstract interfact to, essentially, a map from strings to unique ids + some other machinery. There are some common operations you want to do only once using vocabularies, for instance, gobble up a bunch of text files and create a vocabulary containing words in those documents or perhaps display the elements of a vocabulary in a list. Thus, you want a main function in this module so that you can do something like (from the unix prompt) % vocabulary -build myfiles* -o myvocabulary but you still want to be able to 'import NLP.Vocabulary' in your Haskell modules. What you have to do is have a seperate 'ManipulateVocabulary' module which basically imports NLP.Vocabulary and has a very short & sweet main function. In this case, that's not a big deal. But I have at least 10 such modules where I am forced to have two modules per concept. Not impossible, but obnoxious. - Hal _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell