2 % (c) The AQUA Project, Glasgow University, 1994-1996
5 \section[Unsafe]{Module @Unsafe@}
7 These functions have their own module because we definitely don't want
11 {-# OPTIONS -fno-implicit-prelude #-}
24 import {-# SOURCE #-} GHCerr ( error )
27 %*********************************************************
29 \subsection{Unsafe @IO@ operations}
31 %*********************************************************
34 unsafePerformIO :: IO a -> a
35 unsafePerformIO (IO m)
36 = case m realWorld# of
38 IOfail _ e -> error ("unsafePerformIO: I/O error: " ++ show e ++ "\n")
40 unsafeInterleaveIO :: IO a -> IO a
41 unsafeInterleaveIO (IO m) = IO ( \ s ->
47 {-# GENERATE_SPECS _trace a #-}
48 trace :: String -> a -> a
51 ((_ccall_ PreTraceHook sTDERR{-msg-}):: IO ()) >>
52 fputs sTDERR string >>
53 ((_ccall_ PostTraceHook sTDERR{-msg-}):: IO ()) >>
56 sTDERR = (``stderr'' :: Addr)