David Roundy wrote: > Note also that you can use unsafePerformIO to safely get pure functions > doing both these operations. > I've always been puzzled by this one... how does unsafePerformIO circumvent the type system? I don't understand.