Hi, when reading the subject I was expecting something like this:
-- | Creates an empty IVar newIVar :: IO (IVar a) -- | pure! but blocks until the IVar is written readIVar :: IVar a -> a -- | tries to write to an IVar. -- Succeeds if it is empty (returning True) -- Does nothing if it has been written to (returning False) writeIVar :: IVar a -> a -> IO Bool Alternatively: -- | all in one newIVar :: IO (a, a -> IO Bool) Essentially a thunk, but with explicit control over filling it. In fact, people have implemented something like this using C-- hacks before: https://github.com/twanvl/unsafe-sequence > This would make MonadFix's implementation much nicer, I think :) This would suffice for MonadFix, right? Sorry for derailing the thread :-) Cheers, Joachim -- Joachim Breitner m...@joachim-breitner.de http://www.joachim-breitner.de/
signature.asc
Description: This is a digitally signed message part
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs