
Sorry, but why does [making process properties global values] not break the purity? If i call a function, that depends on global parameters twice within different environments it behaves different.
The argument goes that purity is concerned with what happens in a single run of the program and any single run sees just one environment.
This might make some tasks easier, but testing becomes harder.
That doesn't affect whether it is pure or impure. In any case, it doesn't make testing that much harder. After all, every program that reads a file also produces different behaviour (making testing harder) in different environments. The point of my message wasn't really about purity because, in this case, I think purity is a red herring. It's true that a lot of Haskell's desirable properties stem from purity but it's not true that just because something is pure, it is a good idea to add it to the language. -- Alastair Reid