Hello Daniel, Wednesday, December 21, 2005, 6:24:29 PM, you wrote:
DC> So I can have an IO bit (e.g. a do-block) that calls functions (which DC> are purely functional code) but I can't have a function that executes DC> any IO. it's true DC> For example, it is not possible to write a function "my_read_file" that DC> could work like this: DC> my_data = my_read_file("my_file.txt") DC> Correct? Otherwise this would be a function that is not referentially DC> transparent. you are right. type "IO a", after all, stands for "RealWorld -> (a,RealWorld)", i.e. it gets RealWorld as parameter and returns, besides value of type "a", a new RealWorld state. the function which type don't ended with "IO a", just can't receive or return value of type RealWorld, so there is just no way to check something outside or return new state of the outer world -- Best regards, Bulat mailto:[EMAIL PROTECTED] _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe