Hi I'm just wondering, why haven't process properties (such as the command line arguments, or the parent process id), which are inherently global, been made global values in the Haskell standard? You could avoid needlessly carrying around these values, you wouldn't need to lift some functions into the IO monad...
For instance, command line argument parsing could look something like this: import qualified System data ParsedArgs = ParsedArgs { pa_myflag :: Bool; ... } | Failure parsed_args :: ParsedArgs parsed_args = (... using System.argv ...) myflag = pa_myflag parsed_args main = do when (parsed_args == Failure) $ ... ... You can get the same effect by using unsafePerformIO. It would still be nice having this in the standard. Greetings, V.W. -- Volker Wysk <[EMAIL PROTECTED]> http://www.volker-wysk.de _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe