[Haskell-cafe] unsafePerformIO: are we safe?

Chaddaï Fouché chaddai.fouche at gmail.com
Wed Sep 26 20:01:44 EDT 2007

2007/9/26, Adrian Hey <ahey at iee.org>:
> Chaddaï Fouché wrote:
> > There can't be alternatives, unsafeIO throw by the window most
> > guarantee that Haskell can give you and you have to provide them
> > yourself (with a proof of this part of your program), but it's
> > inherent to the nature of the beast, it's what it do !
> What about ..
>   http://www.haskell.org/haskellwiki/Top_level_mutable_state
> This as unsafe a use of unsafePerformIO as you'll ever find, but
> necessary for real IO libs.

I'm not arguing that there aren't specific current usage of
unsafePerformIO that could be better formalized (there are), I'm
saying that you can't design an alternative to unsafePerformIO which
cover all its applications but stay safer. What we can do with
unsafePerformIO is inherently unsafe, even though you can obtain safe
results with it (and in some of those use-case, a restricted version
of unsafePerformIO could be used and would be safer).


More information about the Haskell-Cafe mailing list