|
| GHC.IOBase | | Portability | non-portable (GHC Extensions) | | Stability | internal | | Maintainer | cvs-ghc@haskell.org |
|
|
|
|
|
| Description |
| Definitions for the IO monad and its friends.
|
|
| Synopsis |
|
|
|
| Documentation |
|
| newtype IO a |
A value of type IO a is a computation which, when performed,
does some I/O before returning a value of type a.
There is really only one way to "perform" an I/O action: bind it to
Main.main in your program. When your program is run, the I/O will
be performed. It isn't possible to perform I/O from an arbitrary
function, unless that function is itself in the IO monad and called
at some point, directly or indirectly, from Main.main.
IO is a monad, so IO actions can be combined using either the do-notation
or the >> and >>= operations from the Monad class.
| | Constructors | | | Instances | |
|
|
| unIO :: IO a -> State# RealWorld -> (#State# RealWorld, a#) |
|
| failIO :: String -> IO a |
|
| liftIO :: IO a -> State# RealWorld -> STret RealWorld a |
|
| bindIO :: IO a -> (a -> IO b) -> IO b |
|
| thenIO :: IO a -> IO b -> IO b |
|
| returnIO :: a -> IO a |
|
| stToIO :: ST RealWorld a -> IO a |
| A monad transformer embedding strict state transformers in the IO
monad. The RealWorld parameter indicates that the internal state
used by the ST computation is a special one supplied by the IO
monad, and thus distinct from those used by invocations of runST. |
|
| ioToST :: IO a -> ST RealWorld a |
|
| unsafePerformIO :: IO a -> a |
This is the "back door" into the IO monad, allowing
IO computation to be performed at any time. For
this to be safe, the IO computation should be
free of side effects and independent of its environment.
If the I/O computation wrapped in unsafePerformIO
performs side effects, then the relative order in which those side
effects take place (relative to the main I/O trunk, or other calls to
unsafePerformIO) is indeterminate. You have to be careful when
writing and compiling modules that use unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
- Use {-# NOINLINE foo #-} as a pragu >unsafePerformIO:
|