Go to the first, previous, next, last section, table of contents.

Unboxed types

These types correspond to the "raw machine" types you would use in C: `Int#' (long int), `Double#' (double), `Addr#' (void *), etc. The primitive operations (PrimOps) on these types are what you might expect; e.g., `(+#)' is addition on `Int#'s, and is the machine-addition that we all know and love -- usually one instruction.

A numerically-intensive program using unboxed types can go a lot faster than its "standard" counterpart -- we saw a threefold speedup on one example.

Please see the very first part of the "state interface document" (distributed in `ghc/docs/state-interface.dvi') for the details of unboxed types and the operations on them.


Go to the first, previous, next, last section, table of contents.