Difference between revisions of "Unsafe functions"
Jump to navigation
Jump to search
m (spelling) |
m (Added link to "unsafe" keyword in FFI.) |
||
Line 15: | Line 15: | ||
kind of assurance on the part of the programmer that what they're doing |
kind of assurance on the part of the programmer that what they're doing |
||
is safe. |
is safe. |
||
+ | |||
+ | "unsafe" is also a keyword which can be used in a [http://haskell.org/haskellwiki/Performance/FFI foreign import declaration]. |
||
{{stub}} |
{{stub}} |
Revision as of 11:45, 8 June 2008
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 seq
) would require some
kind of assurance on the part of the programmer that what they're doing
is safe.
"unsafe" is also a keyword which can be used in a foreign import declaration.
This article is a stub. You can help by expanding it.