[...]
> However, passing around option values to the different parts of your
> program is a major bore, so what about instead treating argv for what
> it really is, a constant, and make it available as such
> (System.argv :: [String]), say. Having it as constant has the nice
> property that your program's option values can now be turned into
> CAFs, and you'll avoid all the pains of plumbing, i.e.,
[...]
Just some comments:
If you want to dynamically load code (which is possible in hbc, not to
mention Erlang), or even create it on the fly, things get complicated
if this new code suddenly refers to, say, standard input, which you've
happily garbage collected many years ago...
Speaking of the pain of plumbing, a relief could be first class
modules. But maybe this is too far away from Haskell.
/M