| ghc-prim-0.2.0.0: GHC primitives | Contents | Index

GHC.Types

Portability | non-portable (GHC Extensions)
Stability | internal
Maintainer | cvs-ghc@haskell.org

Description
GHC type definitions. Use GHC.Exts from the base package instead of importing this module directly.
Synopsis

data Char = C# Char#
data Int = I# Int#
data Float = F# Float#
data Double = D# Double#
newtype IO a = IO (State# RealWorld -> (#State# RealWorld, a#))

Documentation
data Char

Constructors

C# Char# |

data Int

A fixed-precision integer type with at least the range `[-2^29 .. 2^29-1]`. The exact range for a given implementation can be determined by using Prelude.minBound and Prelude.maxBound from the Prelude.Bounded class.
Constructors

I# Int# |

data Float

Single-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE single-precision type.
Constructors

F# Float# |

data Double

Double-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE double-precision type.
Constructors

D# Double# |

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

IO (State# RealWorld -> (#State# RealWorld, a#)) |

Produced by Haddock version 2.6.1