Unsafe functions

From HaskellWiki
Revision as of 22:24, 24 November 2006 by BrettGiles (talk | contribs) (Typo)
Jump to navigation Jump to search

There are a number of unsafe functions in the libraries.

  • unsafePerformIO :: IO a -> a
  • unsafeInterleaveIO :: IO a -> IO a
  • unsafeInterleaveST :: ST s a -> ST s a
  • unsafeIOToST :: IO a -> ST s a
  • unsafeIOToSTM :: IO a -> STM a
  • unsafeFreeze, unsafeThaw
  • unsafeCoerce# :: a -> b
  • seq :: a -> b -> b

Unsafe functions can break type safety (unsafeCoerce#, unsafePerformIO), interfere with lazy IO (unsafeInterleaveIO), or break paramatericity (seq). Their use (except in the case of seq) would require some kind of assurance on the part of the programmer that what they're doing is safe.

This article is a stub. You can help by expanding it.