> time t: f 42 (computational process implementing func application > begins…) > t+1: <keystroke> = 1 > t+2: 43 (… and ends) > > > time t+3: f 42 > t+4: <keystroke> = 2 > t+5: 44 > > > Conclusion: f 42 != f 42
That conclusion would only follow if the same IO action always produced the same result when performed twice in a row. That's obviously untrue, so the conclusion doesn't follow. What you've done is entirely consistent with the fact that f 42 = f 42... it just demonstrates that whatever f 42 is, it doesn't always produce the same result when you o it twice. What Conal is getting at is that we don't have a formal model of what an IO action means. Nevertheless, we know because f is a function, that when it is applied twice to the same argument, the values we get back (which are IO actions, NOT integers) are the same. -- Chris Smith _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe