[Haskell] Re: Why is getArgs in the IO monad?

Jules Bean jules at jellybean.co.uk
Tue Jan 18 06:03:29 EST 2005


On 18 Jan 2005, at 16:12, Ben Rudiak-Gould wrote:

> I'm not strongly convinced by this argument. I don't think you can 
> tell me which particular Char value you mean by the expression 
> (maxBound :: Char) either, yet you probably wouldn't argue for 
> changing maxBound's type. I think Jim's claim is that there's no clear 
> dividing line between these cases, and I tend to agree. Even if you 
> want to disallow explicit recompilation (and how do you define 
> "compilation" denotationally?), an automatic rollout of a new version 
> of Hugs could lead to successive invocations of a script using 
> different values of (maxBound :: Char) (or, more plausibly, some 
> constant defined in the library) without user intervention. How is 
> this different from any other environmental change, such as a change 
> in the program arguments? I think this is what Jim meant when he wrote
>

Library constants which change between runs are evil. As a comparison 
note that the common Java and C and C++ compilers will all happily 
inline library constants at compile time, so they also would suffer 
brokenness if a library constant wasn't constant between runs.

Jules



More information about the Haskell mailing list