
"Claus Reinke"
you mean as in "public static void main(String[] args) { ..}" instead of "main args = .."?-) there are such languages, and I'm happy to say Haskell isn't one of them!
In my language Kogut the default everywhere (modules, objects) is public. I don't care what information hiding extremists would say. It's not painful if the default is public :-) There are definitions to override this: private {definitions} public {definitions} private => definitions public => definitions patterns: private pattern public pattern names: private name public name or alternatively Haskell-style module headers. There is also 'use' (Haskell's 'import') and 'reexport' (Haskell's 'import' but imported names are made public). I found myself using primarily 'private' on individual names, or module headers if the module export list is very short, or rarely 'private' over a region of definitions. -- __("< Marcin Kowalczyk \__/ qrczak@knm.org.pl ^^ http://qrnik.knm.org.pl/~qrczak/