[Haskell-cafe] What unsafeInterleaveIO is unsafe

Jonathan Cast jonathanccast at fastmail.fm
Mon Mar 16 17:17:54 EDT 2009


On Mon, 2009-03-16 at 22:12 +0100, Henning Thielemann wrote:
> On Sun, 15 Mar 2009, Claus Reinke wrote:
> 
> > import Data.IORef
> > import Control.Exception
> >
> > main = do
> >   r <- newIORef 0
> >   let v = undefined
> >   handle (\(ErrorCall _)->print "hi">>return 42) $ case f v of
> >     0 -> return 0
> >     n -> return (n - 1)
> >   y <- readIORef r
> >   print y
> 
> I don't see what this has to do with strictness. It's just the hacky 
> "exception handling" which allows to "catch" programming errors.

And which I have a sneaking suspicion actually *is* `unsafe'.  Or, at
least, incapable of being given a compositional, continuous semantics.

jcc




More information about the Haskell-Cafe mailing list