On Thu, 1 Feb 2007, David House wrote: > I think that's too safe-looking. Anything that translates to something > involving unsafe* should be tagged with 'unsafe' somewhere as well. > Also, as unsafe* is still compiler specific, I think a pragma is > probably most appropriate: > > {-# GLOBAL-MUTVAR #-} > i :: IORef Int > i = unsafePerformIO (newIORef 1) >
There might be a more sensible way to handle it while retaining the meat of Bulat's proposal, but I don't think it can really be done without making significant changes to the module system - it amounts to having initialiser actions, and once you've got those there're all sorts of things that rapidly become desirable. I've had a couple of occasions where being able to treat an entire module as being within a monad or an arrow could've been used to good effect though. -- [EMAIL PROTECTED] "The reason for this is simple yet profound. Equations of the form x = x are completely useless. All interesting equations are of the form x = y." -- John C. Baez _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime