[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