On Wednesday 13 October 2004 00:00, Adrian Hey wrote: > Unfortunately, in this case the whole point of what people are trying > to do with unsafePerformIO is to allow these things to be visible at > the top level :-)
Sometimes I get too much involved in what I think about, and forget the original goal :) A little _too_ naive, it seems, I apologize. So it's like the original idea, that using these toplevel IO bindings one has to impose an order of evaluation over all program bindings, which surely is against the current meaning of haskell programs, e.g. if I say conf <- readMyConfFile init = fn conf people would agree that the correct meaning is to first evaluate all of the IO bindings and then the rest of the program: x1 <- a1 ... xn <- an v1 = expr1 ... vn = exprn main = action should be equivalent to main = do x1 <- a1 ... xn <- an let v1 = expr1 ... vn = exprn in action This would not change the meaning of a standard haskell program I think (but I am not an expert as you see). Am I wrong? Could this be done with a preprocessor? Why not? V. _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell