<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.Int</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_Data-Int.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">base-4.3.1.0: Basic libraries</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr></table><p class="caption">Data.Int</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Signed integer types </a></li><li><a href="#g:2">Notes </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Signed integer types </p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Int">Int</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:Int8">Int8</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:Int16">Int16</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:Int32">Int32</a> </li><li class="src short"><span class="keyword">data</span> <a href="#t:Int64">Int64</a> </li></ul></div><div id="interface"><h1 id="g:1">Signed integer types </h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Int" class="def">Int</a> <a href="../ghc-prim-0.2.0.0/src/GHC-Types.html#Int" class="link">Source</a></p><div class="doc"><p>A fixed-precision integer type with at least the range <code>[-2^29 .. 2^29-1]</code>. The exact range for a given implementation can be determined by using <code>Prelude.minBound</code> and <code>Prelude.maxBound</code> from the <code>Prelude.Bounded</code> class. </p></div><div class="subs instances"><p id="control.i:Int" class="caption collapser" onclick="toggleSection('i:Int')">Instances</p><div id="section.i:Int" class="show"><table><tr><td class="src"><a href="Prelude.html#t:Bounded">Bounded</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Enum">Enum</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Eq.html#t:Eq">Eq</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Integral">Integral</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Data.html#t:Data">Data</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Num">Num</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ord.html#t:Ord">Ord</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Real">Real</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Show.html#t:Show">Show</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ix.html#t:Ix">Ix</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Typeable.html#t:Typeable">Typeable</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Bits.html#t:Bits">Bits</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Foreign-Storable.html#t:Storable">Storable</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Printf.html#t:PrintfArg">PrintfArg</a> <a href="Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Int8" class="def">Int8</a> </p><div class="doc"><p>8-bit signed integer type </p></div><div class="subs instances"><p id="control.i:Int8" class="caption collapser" onclick="toggleSection('i:Int8')">Instances</p><div id="section.i:Int8" class="show"><table><tr><td class="src"><a href="Prelude.html#t:Bounded">Bounded</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Enum">Enum</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Eq.html#t:Eq">Eq</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Integral">Integral</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Data.html#t:Data">Data</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Num">Num</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ord.html#t:Ord">Ord</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Real">Real</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Show.html#t:Show">Show</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ix.html#t:Ix">Ix</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Typeable.html#t:Typeable">Typeable</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Bits.html#t:Bits">Bits</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Foreign-Storable.html#t:Storable">Storable</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Printf.html#t:PrintfArg">PrintfArg</a> <a href="Data-Int.html#t:Int8">Int8</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Int16" class="def">Int16</a> </p><div class="doc"><p>16-bit signed integer type </p></div><div class="subs instances"><p id="control.i:Int16" class="caption collapser" onclick="toggleSection('i:Int16')">Instances</p><div id="section.i:Int16" class="show"><table><tr><td class="src"><a href="Prelude.html#t:Bounded">Bounded</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Enum">Enum</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Eq.html#t:Eq">Eq</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Integral">Integral</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Data.html#t:Data">Data</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Num">Num</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ord.html#t:Ord">Ord</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Real">Real</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Show.html#t:Show">Show</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ix.html#t:Ix">Ix</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Typeable.html#t:Typeable">Typeable</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Bits.html#t:Bits">Bits</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Foreign-Storable.html#t:Storable">Storable</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Printf.html#t:PrintfArg">PrintfArg</a> <a href="Data-Int.html#t:Int16">Int16</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Int32" class="def">Int32</a> </p><div class="doc"><p>32-bit signed integer type </p></div><div class="subs instances"><p id="control.i:Int32" class="caption collapser" onclick="toggleSection('i:Int32')">Instances</p><div id="section.i:Int32" class="show"><table><tr><td class="src"><a href="Prelude.html#t:Bounded">Bounded</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Enum">Enum</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Eq.html#t:Eq">Eq</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Integral">Integral</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Data.html#t:Data">Data</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Num">Num</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ord.html#t:Ord">Ord</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Real">Real</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Show.html#t:Show">Show</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ix.html#t:Ix">Ix</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Typeable.html#t:Typeable">Typeable</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Bits.html#t:Bits">Bits</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Foreign-Storable.html#t:Storable">Storable</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Printf.html#t:PrintfArg">PrintfArg</a> <a href="Data-Int.html#t:Int32">Int32</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Int64" class="def">Int64</a> </p><div class="doc"><p>64-bit signed integer type </p></div><div class="subs instances"><p id="control.i:Int64" class="caption collapser" onclick="toggleSection('i:Int64')">Instances</p><div id="section.i:Int64" class="show"><table><tr><td class="src"><a href="Prelude.html#t:Bounded">Bounded</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Enum">Enum</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Eq.html#t:Eq">Eq</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Integral">Integral</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Data.html#t:Data">Data</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Num">Num</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ord.html#t:Ord">Ord</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Prelude.html#t:Real">Real</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Show.html#t:Show">Show</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Ix.html#t:Ix">Ix</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Typeable.html#t:Typeable">Typeable</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Data-Bits.html#t:Bits">Bits</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Foreign-Storable.html#t:Storable">Storable</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Text-Printf.html#t:PrintfArg">PrintfArg</a> <a href="Data-Int.html#t:Int64">Int64</a></td><td class="doc empty"> </td></tr></table></div></div></div><h1 id="g:2">Notes </h1><div class="doc"><ul><li> All arithmetic is performed modulo 2^n, where <code>n</code> is the number of bits in the type. </li><li> For coercing between any two integer types, use <code>Prelude.fromIntegral</code>, which is specialized for all the common cases so should be fast enough. Coercing word types (see <a href="Data-Word.html">Data.Word</a>) to and from integer types preserves representation, not sign. </li><li> The rules that hold for <code>Prelude.Enum</code> instances over a bounded type such as <code><a href="Data-Int.html#t:Int">Int</a></code> (see the section of the Haskell report dealing with arithmetic sequences) also hold for the <code>Prelude.Enum</code> instances over the various <code><a href="Data-Int.html#t:Int">Int</a></code> types defined here. </li><li> Right and left shifts by amounts greater than or equal to the width of the type result in either zero or -1, depending on the sign of the value being shifted. This is contrary to the behaviour in C, which is undefined; a common interpretation is to truncate the shift count to the width of the type, for example <code>1 << 32 == 1</code> in some C implementations. </li></ul></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>