Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 3725

ghc-7.4.2-4.mga5.i586.rpm

<!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>Foreign.Ptr</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_Foreign-Ptr.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">haskell2010-1.1.0.1: Compatibility with Haskell 2010</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe</td></tr></table><p class="caption">Foreign.Ptr</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Data pointers
</a></li><li><a href="#g:2">Function pointers
</a></li><li><a href="#g:3">Integral types with lossless conversion to and from pointers
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The module <a href="../base-4.5.1.0/Foreign-Ptr.html">Foreign.Ptr</a> provides typed pointers to foreign
 entities.  We distinguish two kinds of pointers: pointers to data
 and pointers to functions.  It is understood that these two kinds
 of pointers may be represented differently as they may be
 references to data and text segments, respectively.
</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:Ptr">Ptr</a> a</li><li class="src short"><a href="#v:nullPtr">nullPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a</li><li class="src short"><a href="#v:castPtr">castPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> b</li><li class="src short"><a href="#v:plusPtr">plusPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Prelude.html#t:Int">Int</a> -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> b</li><li class="src short"><a href="#v:alignPtr">alignPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Prelude.html#t:Int">Int</a> -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a</li><li class="src short"><a href="#v:minusPtr">minusPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> b -&gt; <a href="Prelude.html#t:Int">Int</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:FunPtr">FunPtr</a> a</li><li class="src short"><a href="#v:nullFunPtr">nullFunPtr</a> ::  <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a</li><li class="src short"><a href="#v:castFunPtr">castFunPtr</a> ::  <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a -&gt; <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> b</li><li class="src short"><a href="#v:castFunPtrToPtr">castFunPtrToPtr</a> ::  <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> b</li><li class="src short"><a href="#v:castPtrToFunPtr">castPtrToFunPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> b</li><li class="src short"><a href="#v:freeHaskellFunPtr">freeHaskellFunPtr</a> ::  <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a -&gt; <a href="Prelude.html#t:IO">IO</a> ()</li><li class="src short"><span class="keyword">data</span>  <a href="#t:IntPtr">IntPtr</a> </li><li class="src short"><a href="#v:ptrToIntPtr">ptrToIntPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></li><li class="src short"><a href="#v:intPtrToPtr">intPtrToPtr</a> ::  <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a> -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:WordPtr">WordPtr</a> </li><li class="src short"><a href="#v:ptrToWordPtr">ptrToWordPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></li><li class="src short"><a href="#v:wordPtrToPtr">wordPtrToPtr</a> ::  <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a> -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a</li></ul></div><div id="interface"><h1 id="g:1">Data pointers
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Ptr" class="def">Ptr</a> a <a href="../base-4.5.1.0/src/GHC-Ptr.html#Ptr" class="link">Source</a></p><div class="doc"><p>A value of type <code><code><a href="Foreign-Ptr.html#t:Ptr">Ptr</a></code> a</code> represents a pointer to an object, or an
 array of objects, which may be marshalled to or from Haskell values
 of type <code>a</code>.
</p><p>The type <code>a</code> will often be an instance of class
 <code><a href="../base-4.5.1.0/Foreign-Storable.html#t:Storable">Storable</a></code> which provides the marshalling operations.
 However this is not essential, and you can provide your own operations
 to access the pointer.  For example you might write small foreign
 functions to get or set the fields of a C <code>struct</code>.
</p></div><div class="subs instances"><p id="control.i:Ptr" class="caption collapser" onclick="toggleSection('i:Ptr')">Instances</p><div id="section.i:Ptr" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="Foreign-Ptr.html#t:Ptr">Ptr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Eq">Eq</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Ord">Ord</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Show">Show</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Foreign-Storable.html#t:Storable">Storable</a> (<a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:nullPtr" class="def">nullPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a<a href="../base-4.5.1.0/src/GHC-Ptr.html#nullPtr" class="link">Source</a></p><div class="doc"><p>The constant <code><a href="Foreign-Ptr.html#v:nullPtr">nullPtr</a></code> contains a distinguished value of <code><a href="Foreign-Ptr.html#t:Ptr">Ptr</a></code>
 that is not associated with a valid memory location.
</p></div></div><div class="top"><p class="src"><a name="v:castPtr" class="def">castPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> b<a href="../base-4.5.1.0/src/GHC-Ptr.html#castPtr" class="link">Source</a></p><div class="doc"><p>The <code><a href="Foreign-Ptr.html#v:castPtr">castPtr</a></code> function casts a pointer from one type to another.
</p></div></div><div class="top"><p class="src"><a name="v:plusPtr" class="def">plusPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Prelude.html#t:Int">Int</a> -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> b<a href="../base-4.5.1.0/src/GHC-Ptr.html#plusPtr" class="link">Source</a></p><div class="doc"><p>Advances the given address by the given offset in bytes.
</p></div></div><div class="top"><p class="src"><a name="v:alignPtr" class="def">alignPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Prelude.html#t:Int">Int</a> -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a<a href="../base-4.5.1.0/src/GHC-Ptr.html#alignPtr" class="link">Source</a></p><div class="doc"><p>Given an arbitrary address and an alignment constraint,
 <code><a href="Foreign-Ptr.html#v:alignPtr">alignPtr</a></code> yields the next higher address that fulfills the
 alignment constraint.  An alignment constraint <code>x</code> is fulfilled by
 any address divisible by <code>x</code>.  This operation is idempotent.
</p></div></div><div class="top"><p class="src"><a name="v:minusPtr" class="def">minusPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> b -&gt; <a href="Prelude.html#t:Int">Int</a><a href="../base-4.5.1.0/src/GHC-Ptr.html#minusPtr" class="link">Source</a></p><div class="doc"><p>Computes the offset required to get from the second to the first
 argument.  We have 
</p><pre> p2 == p1 `plusPtr` (p2 `minusPtr` p1)
</pre></div></div><h1 id="g:2">Function pointers
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:FunPtr" class="def">FunPtr</a> a <a href="../base-4.5.1.0/src/GHC-Ptr.html#FunPtr" class="link">Source</a></p><div class="doc"><p>A value of type <code><code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code> a</code> is a pointer to a function callable
 from foreign code.  The type <code>a</code> will normally be a <em>foreign type</em>,
 a function type with zero or more arguments where
</p><ul><li> the argument types are <em>marshallable foreign types</em>,
   i.e. <code><a href="Prelude.html#t:Char">Char</a></code>, <code><a href="Prelude.html#t:Int">Int</a></code>, <code><a href="Prelude.html#t:Double">Double</a></code>, <code><a href="Prelude.html#t:Float">Float</a></code>,
   <code><a href="Prelude.html#t:Bool">Bool</a></code>, <code><a href="../base-4.5.1.0/Data-Int.html#t:Int8">Int8</a></code>, <code><a href="../base-4.5.1.0/Data-Int.html#t:Int16">Int16</a></code>, <code><a href="../base-4.5.1.0/Data-Int.html#t:Int32">Int32</a></code>,
   <code><a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a></code>, <code><a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a></code>, <code><a href="../base-4.5.1.0/Data-Word.html#t:Word16">Word16</a></code>,
   <code><a href="../base-4.5.1.0/Data-Word.html#t:Word32">Word32</a></code>, <code><a href="../base-4.5.1.0/Data-Word.html#t:Word64">Word64</a></code>, <code><code><a href="Foreign-Ptr.html#t:Ptr">Ptr</a></code> a</code>, <code><code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code> a</code>,
   <code><code><a href="../base-4.5.1.0/Foreign-StablePtr.html#t:StablePtr">StablePtr</a></code> a</code> or a renaming of any of these
   using <code>newtype</code>.
</li><li> the return type is either a marshallable foreign type or has the form
   <code><code><a href="Prelude.html#t:IO">IO</a></code> t</code> where <code>t</code> is a marshallable foreign type or <code>()</code>.
</li></ul><p>A value of type <code><code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code> a</code> may be a pointer to a foreign function,
 either returned by another foreign function or imported with a
 a static address import like
</p><pre> foreign import ccall &quot;stdlib.h &amp;free&quot;
   p_free :: FunPtr (Ptr a -&gt; IO ())
</pre><p>or a pointer to a Haskell function created using a <em>wrapper</em> stub
 declared to produce a <code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code> of the correct type.  For example:
</p><pre> type Compare = Int -&gt; Int -&gt; Bool
 foreign import ccall &quot;wrapper&quot;
   mkCompare :: Compare -&gt; IO (FunPtr Compare)
</pre><p>Calls to wrapper stubs like <code>mkCompare</code> allocate storage, which
 should be released with <code><a href="../base-4.5.1.0/Foreign-Ptr.html#v:freeHaskellFunPtr">freeHaskellFunPtr</a></code> when no
 longer required.
</p><p>To convert <code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code> values to corresponding Haskell functions, one
 can define a <em>dynamic</em> stub for the specific foreign type, e.g.
</p><pre> type IntFunction = CInt -&gt; IO ()
 foreign import ccall &quot;dynamic&quot; 
   mkFun :: FunPtr IntFunction -&gt; IntFunction
</pre></div><div class="subs instances"><p id="control.i:FunPtr" class="caption collapser" onclick="toggleSection('i:FunPtr')">Instances</p><div id="section.i:FunPtr" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Eq">Eq</a> (<a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Ord">Ord</a> (<a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Show">Show</a> (<a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Foreign-Storable.html#t:Storable">Storable</a> (<a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:nullFunPtr" class="def">nullFunPtr</a> ::  <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a<a href="../base-4.5.1.0/src/GHC-Ptr.html#nullFunPtr" class="link">Source</a></p><div class="doc"><p>The constant <code><a href="Foreign-Ptr.html#v:nullFunPtr">nullFunPtr</a></code> contains a
 distinguished value of <code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code> that is not
 associated with a valid memory location.
</p></div></div><div class="top"><p class="src"><a name="v:castFunPtr" class="def">castFunPtr</a> ::  <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a -&gt; <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> b<a href="../base-4.5.1.0/src/GHC-Ptr.html#castFunPtr" class="link">Source</a></p><div class="doc"><p>Casts a <code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code> to a <code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code> of a different type.
</p></div></div><div class="top"><p class="src"><a name="v:castFunPtrToPtr" class="def">castFunPtrToPtr</a> ::  <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> b<a href="../base-4.5.1.0/src/GHC-Ptr.html#castFunPtrToPtr" class="link">Source</a></p><div class="doc"><p>Casts a <code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code> to a <code><a href="Foreign-Ptr.html#t:Ptr">Ptr</a></code>.
</p><p><em>Note:</em> this is valid only on architectures where data and function
 pointers range over the same set of addresses, and should only be used
 for bindings to external libraries whose interface already relies on
 this assumption.
</p></div></div><div class="top"><p class="src"><a name="v:castPtrToFunPtr" class="def">castPtrToFunPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> b<a href="../base-4.5.1.0/src/GHC-Ptr.html#castPtrToFunPtr" class="link">Source</a></p><div class="doc"><p>Casts a <code><a href="Foreign-Ptr.html#t:Ptr">Ptr</a></code> to a <code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code>.
</p><p><em>Note:</em> this is valid only on architectures where data and function
 pointers range over the same set of addresses, and should only be used
 for bindings to external libraries whose interface already relies on
 this assumption.
</p></div></div><div class="top"><p class="src"><a name="v:freeHaskellFunPtr" class="def">freeHaskellFunPtr</a> ::  <a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a> a -&gt; <a href="Prelude.html#t:IO">IO</a> ()<a href="../base-4.5.1.0/src/Foreign-Ptr.html#freeHaskellFunPtr" class="link">Source</a></p><div class="doc"><p>Release the storage associated with the given <code><a href="Foreign-Ptr.html#t:FunPtr">FunPtr</a></code>, which
 must have been obtained from a wrapper stub.  This should be called
 whenever the return value from a foreign import wrapper function is
 no longer required; otherwise, the storage it uses will leak.
</p></div></div><h1 id="g:3">Integral types with lossless conversion to and from pointers
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:IntPtr" class="def">IntPtr</a>  <a href="../base-4.5.1.0/src/Foreign-Ptr.html#IntPtr" class="link">Source</a></p><div class="doc"><p>A signed integral type that can be losslessly converted to and from
 <code>Ptr</code>.  This type is also compatible with the C99 type <code>intptr_t</code>, and
 can be marshalled to and from that type safely.
</p></div><div class="subs instances"><p id="control.i:IntPtr" class="caption collapser" onclick="toggleSection('i:IntPtr')">Instances</p><div id="section.i:IntPtr" class="show"><table><tr><td class="src"><a href="Prelude.html#t:Bounded">Bounded</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Enum">Enum</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Eq">Eq</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Integral">Integral</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Num">Num</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Ord">Ord</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Read">Read</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Real">Real</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Show">Show</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Foreign-Storable.html#t:Storable">Storable</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Data-Bits.html#t:Bits">Bits</a> <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ptrToIntPtr" class="def">ptrToIntPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a><a href="../base-4.5.1.0/src/Foreign-Ptr.html#ptrToIntPtr" class="link">Source</a></p><div class="doc"><p>casts a <code>Ptr</code> to an <code>IntPtr</code>
</p></div></div><div class="top"><p class="src"><a name="v:intPtrToPtr" class="def">intPtrToPtr</a> ::  <a href="Foreign-Ptr.html#t:IntPtr">IntPtr</a> -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a<a href="../base-4.5.1.0/src/Foreign-Ptr.html#intPtrToPtr" class="link">Source</a></p><div class="doc"><p>casts an <code>IntPtr</code> to a <code>Ptr</code>
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:WordPtr" class="def">WordPtr</a>  <a href="../base-4.5.1.0/src/Foreign-Ptr.html#WordPtr" class="link">Source</a></p><div class="doc"><p>An unsigned integral type that can be losslessly converted to and from
 <code>Ptr</code>. This type is also compatible with the C99 type <code>uintptr_t</code>, and
 can be marshalled to and from that type safely.
</p></div><div class="subs instances"><p id="control.i:WordPtr" class="caption collapser" onclick="toggleSection('i:WordPtr')">Instances</p><div id="section.i:WordPtr" class="show"><table><tr><td class="src"><a href="Prelude.html#t:Bounded">Bounded</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Enum">Enum</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Eq">Eq</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Integral">Integral</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Num">Num</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Ord">Ord</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Read">Read</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Real">Real</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Prelude.html#t:Show">Show</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Foreign-Storable.html#t:Storable">Storable</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Data-Bits.html#t:Bits">Bits</a> <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ptrToWordPtr" class="def">ptrToWordPtr</a> ::  <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a -&gt; <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a><a href="../base-4.5.1.0/src/Foreign-Ptr.html#ptrToWordPtr" class="link">Source</a></p><div class="doc"><p>casts a <code>Ptr</code> to a <code>WordPtr</code>
</p></div></div><div class="top"><p class="src"><a name="v:wordPtrToPtr" class="def">wordPtrToPtr</a> ::  <a href="Foreign-Ptr.html#t:WordPtr">WordPtr</a> -&gt; <a href="Foreign-Ptr.html#t:Ptr">Ptr</a> a<a href="../base-4.5.1.0/src/Foreign-Ptr.html#wordPtrToPtr" class="link">Source</a></p><div class="doc"><p>casts a <code>WordPtr</code> to a <code>Ptr</code>
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>