[Haskell-cafe] unsafePerformIO: are we safe?

Jorge Marques Pelizzoni jpeliz at icmc.usp.br
Wed Sep 26 10:43:15 EDT 2007


Hi, all!

This is a newbie question: I sort of understand what unsafePerformIO does
but I don't quite get its consequences. In short: how safe can one be in
face of it? I mean, conceptually, it allows any Haskell function to have
side effects just as in any imperative language, doesn't it? Doesn't it
blow up referential transparency for good? Is there anything intrinsic to
it that still keeps Haskell "sound" no matter what unsafePerformIO users
do (unlikely) or else what are the guidelines we should follow when using
it?

Thanks in advance. Cheers,

Jorge.



More information about the Haskell-Cafe mailing list