Personal tools

Unsafe functions

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m (Typo)
m (spelling)

Revision as of 12:52, 26 August 2007

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 parametricity (seq).

Their use (except in the case of
) 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.