This file is indexed.

/usr/share/doc/libghc-text-doc/html/Data-Text-Foreign.html is in libghc-text-doc 1.2.2.1-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!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.Text.Foreign</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Data-Text-Foreign.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Text-Foreign.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">text-1.2.2.1: An efficient packed Unicode text type.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(c) 2009, 2010 Bryan O'Sullivan</td></tr><tr><th>License</th><td>BSD-style</td></tr><tr><th>Maintainer</th><td>bos@serpentine.com</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Portability</th><td>GHC</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Data.Text.Foreign</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Interoperability with native code</a></li><li><a href="#g:2">Safe conversion functions</a><ul><li><a href="#g:3">Encoding as UTF-8</a></li></ul></li><li><a href="#g:4">Unsafe conversion code</a></li><li><a href="#g:5">Low-level manipulation</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Support for using <code><a href="Data-Text.html#t:Text">Text</a></code> data with native code via the Haskell
 foreign function interface.</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:I16">I16</a></li><li class="src short"><a href="#v:fromPtr">fromPtr</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="Data-Text.html#t:Text">Text</a></li><li class="src short"><a href="#v:useAsPtr">useAsPtr</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:asForeignPtr">asForeignPtr</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-ForeignPtr.html#t:ForeignPtr">ForeignPtr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a>, <a href="Data-Text-Foreign.html#t:I16">I16</a>)</li><li class="src short"><a href="#v:peekCStringLen">peekCStringLen</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-C-String.html#t:CStringLen">CStringLen</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="Data-Text.html#t:Text">Text</a></li><li class="src short"><a href="#v:withCStringLen">withCStringLen</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-C-String.html#t:CStringLen">CStringLen</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:lengthWord16">lengthWord16</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:unsafeCopyToPtr">unsafeCopyToPtr</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:dropWord16">dropWord16</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="Data-Text.html#t:Text">Text</a></li><li class="src short"><a href="#v:takeWord16">takeWord16</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="Data-Text.html#t:Text">Text</a></li></ul></div><div id="interface"><h1 id="g:1">Interoperability with native code</h1><div class="doc"><p>The <code><a href="Data-Text.html#t:Text">Text</a></code> type is implemented using arrays that are not guaranteed
 to have a fixed address in the Haskell heap. All communication with
 native code must thus occur by copying data back and forth.</p><p>The <code><a href="Data-Text.html#t:Text">Text</a></code> type's internal representation is UTF-16, using the
 platform's native endianness.  This makes copied data suitable for
 use with native libraries that use a similar representation, such
 as ICU.  To interoperate with native libraries that use different
 internal representations, such as UTF-8 or UTF-32, consider using
 the functions in the <code><a href="Data-Text.html#v:Encoding">Encoding</a></code> module.</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:I16" class="def">I16</a> <a href="src/Data-Text-Foreign.html#I16" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></p><div class="doc"><p>A type representing a number of UTF-16 code units.</p></div><div class="subs instances"><p id="control.i:I16" class="caption collapser" onclick="toggleSection('i:I16')">Instances</p><div id="section.i:I16" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:I16:Bounded:1" class="instance expander" onclick="toggleSection('i:id:I16:Bounded:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Bounded">Bounded</a> <a href="Data-Text-Foreign.html#t:I16">I16</a></span> <a href="src/Data-Text-Foreign.html#line-70" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:I16:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:I16:Enum:2" class="instance expander" onclick="toggleSection('i:id:I16:Enum:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Enum">Enum</a> <a href="Data-Text-Foreign.html#t:I16">I16</a></span> <a href="src/Data-Text-Foreign.html#line-70" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:I16:Enum:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; [<a href="Data-Text-Foreign.html#t:I16">I16</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; [<a href="Data-Text-Foreign.html#t:I16">I16</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; [<a href="Data-Text-Foreign.html#t:I16">I16</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; [<a href="Data-Text-Foreign.html#t:I16">I16</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:I16:Eq:3" class="instance expander" onclick="toggleSection('i:id:I16:Eq:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Data-Text-Foreign.html#t:I16">I16</a></span> <a href="src/Data-Text-Foreign.html#line-70" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:I16:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:I16:Integral:4" class="instance expander" onclick="toggleSection('i:id:I16:Integral:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integral">Integral</a> <a href="Data-Text-Foreign.html#t:I16">I16</a></span> <a href="src/Data-Text-Foreign.html#line-70" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:I16:Integral:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:quot">quot</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:quot" class="selflink">#</a></p><p class="src"><a href="#v:rem">rem</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:rem" class="selflink">#</a></p><p class="src"><a href="#v:div">div</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:div" class="selflink">#</a></p><p class="src"><a href="#v:mod">mod</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:mod" class="selflink">#</a></p><p class="src"><a href="#v:quotRem">quotRem</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; (<a href="Data-Text-Foreign.html#t:I16">I16</a>, <a href="Data-Text-Foreign.html#t:I16">I16</a>) <a href="#v:quotRem" class="selflink">#</a></p><p class="src"><a href="#v:divMod">divMod</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; (<a href="Data-Text-Foreign.html#t:I16">I16</a>, <a href="Data-Text-Foreign.html#t:I16">I16</a>) <a href="#v:divMod" class="selflink">#</a></p><p class="src"><a href="#v:toInteger">toInteger</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> <a href="#v:toInteger" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:I16:Num:5" class="instance expander" onclick="toggleSection('i:id:I16:Num:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Num">Num</a> <a href="Data-Text-Foreign.html#t:I16">I16</a></span> <a href="src/Data-Text-Foreign.html#line-70" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:I16:Num:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-43-">(+)</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:-43-" class="selflink">#</a></p><p class="src"><a href="#v:-45-">(-)</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:-45-" class="selflink">#</a></p><p class="src"><a href="#v:-42-">(*)</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:-42-" class="selflink">#</a></p><p class="src"><a href="#v:negate">negate</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:negate" class="selflink">#</a></p><p class="src"><a href="#v:abs">abs</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:abs" class="selflink">#</a></p><p class="src"><a href="#v:signum">signum</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:signum" class="selflink">#</a></p><p class="src"><a href="#v:fromInteger">fromInteger</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:fromInteger" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:I16:Ord:6" class="instance expander" onclick="toggleSection('i:id:I16:Ord:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ord.html#t:Ord">Ord</a> <a href="Data-Text-Foreign.html#t:I16">I16</a></span> <a href="src/Data-Text-Foreign.html#line-70" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:I16:Ord:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:I16:Read:7" class="instance expander" onclick="toggleSection('i:id:I16:Read:7')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-Read.html#t:Read">Read</a> <a href="Data-Text-Foreign.html#t:I16">I16</a></span> <a href="src/Data-Text-Foreign.html#line-70" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:I16:Read:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-ParserCombinators-ReadP.html#t:ReadS">ReadS</a> <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-ParserCombinators-ReadP.html#t:ReadS">ReadS</a> [<a href="Data-Text-Foreign.html#t:I16">I16</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Data-Text-Foreign.html#t:I16">I16</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Data-Text-Foreign.html#t:I16">I16</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:I16:Real:8" class="instance expander" onclick="toggleSection('i:id:I16:Real:8')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Real">Real</a> <a href="Data-Text-Foreign.html#t:I16">I16</a></span> <a href="src/Data-Text-Foreign.html#line-70" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:I16:Real:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toRational">toRational</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Rational">Rational</a> <a href="#v:toRational" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:I16:Show:9" class="instance expander" onclick="toggleSection('i:id:I16:Show:9')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-Show.html#t:Show">Show</a> <a href="Data-Text-Foreign.html#t:I16">I16</a></span> <a href="src/Data-Text-Foreign.html#line-70" class="link">Source</a> <a href="#t:I16" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:I16:Show:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Data-Text-Foreign.html#t:I16">I16</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h1 id="g:2">Safe conversion functions</h1><div class="top"><p class="src"><a id="v:fromPtr" class="def">fromPtr</a> <a href="src/Data-Text-Foreign.html#fromPtr" class="link">Source</a> <a href="#v:fromPtr" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a></td><td class="doc"><p>source array</p></td></tr><tr><td class="src">-&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a></td><td class="doc"><p>length of source array (in <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a></code> units)</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="Data-Text.html#t:Text">Text</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p><em>O(n)</em> Create a new <code><a href="Data-Text.html#t:Text">Text</a></code> from a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a></code> by copying the
 contents of the array.</p></div></div><div class="top"><p class="src"><a id="v:useAsPtr" class="def">useAsPtr</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a> -&gt; <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a <a href="src/Data-Text-Foreign.html#useAsPtr" class="link">Source</a> <a href="#v:useAsPtr" class="selflink">#</a></p><div class="doc"><p><em>O(n)</em> Perform an action on a temporary, mutable copy of a
 <code><a href="Data-Text.html#t:Text">Text</a></code>.  The copy is freed as soon as the action returns.</p></div></div><div class="top"><p class="src"><a id="v:asForeignPtr" class="def">asForeignPtr</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-ForeignPtr.html#t:ForeignPtr">ForeignPtr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a>, <a href="Data-Text-Foreign.html#t:I16">I16</a>) <a href="src/Data-Text-Foreign.html#asForeignPtr" class="link">Source</a> <a href="#v:asForeignPtr" class="selflink">#</a></p><div class="doc"><p><em>O(n)</em> Make a mutable copy of a <code><a href="Data-Text.html#t:Text">Text</a></code>.</p></div></div><h2 id="g:3">Encoding as UTF-8</h2><div class="top"><p class="src"><a id="v:peekCStringLen" class="def">peekCStringLen</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-C-String.html#t:CStringLen">CStringLen</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="Data-Text.html#t:Text">Text</a> <a href="src/Data-Text-Foreign.html#peekCStringLen" class="link">Source</a> <a href="#v:peekCStringLen" class="selflink">#</a></p><div class="doc"><p><em>O(n)</em> Decode a C string with explicit length, which is assumed
 to have been encoded as UTF-8. If decoding fails, a
 <code>UnicodeException</code> is thrown.</p></div></div><div class="top"><p class="src"><a id="v:withCStringLen" class="def">withCStringLen</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-C-String.html#t:CStringLen">CStringLen</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a <a href="src/Data-Text-Foreign.html#withCStringLen" class="link">Source</a> <a href="#v:withCStringLen" class="selflink">#</a></p><div class="doc"><p>Marshal a <code><a href="Data-Text.html#t:Text">Text</a></code> into a C string encoded as UTF-8 in temporary
 storage, with explicit length information. The encoded string may
 contain NUL bytes, and is not followed by a trailing NUL byte.</p><p>The temporary storage is freed when the subcomputation terminates
 (either normally or via an exception), so the pointer to the
 temporary storage must <em>not</em> be used after this function returns.</p></div></div><h1 id="g:4">Unsafe conversion code</h1><div class="top"><p class="src"><a id="v:lengthWord16" class="def">lengthWord16</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="src/Data-Text-Unsafe.html#lengthWord16" class="link">Source</a> <a href="#v:lengthWord16" class="selflink">#</a></p><div class="doc"><p><em>O(1)</em> Return the length of a <code><a href="Data-Text.html#t:Text">Text</a></code> in units of <code>Word16</code>.  This
 is useful for sizing a target array appropriately before using
 <code>unsafeCopyToPtr</code>.</p></div></div><div class="top"><p class="src"><a id="v:unsafeCopyToPtr" class="def">unsafeCopyToPtr</a> :: <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="src/Data-Text-Foreign.html#unsafeCopyToPtr" class="link">Source</a> <a href="#v:unsafeCopyToPtr" class="selflink">#</a></p><div class="doc"><p><em>O(n)</em> Copy a <code><a href="Data-Text.html#t:Text">Text</a></code> to an array.  The array is assumed to be big
 enough to hold the contents of the entire <code><a href="Data-Text.html#t:Text">Text</a></code>.</p></div></div><h1 id="g:5">Low-level manipulation</h1><div class="doc"><p>Foreign functions that use UTF-16 internally may return indices in
 units of <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a></code> instead of characters.  These functions may
 safely be used with such indices, as they will adjust offsets if
 necessary to preserve the validity of a Unicode string.</p></div><div class="top"><p class="src"><a id="v:dropWord16" class="def">dropWord16</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="Data-Text.html#t:Text">Text</a> <a href="src/Data-Text-Foreign.html#dropWord16" class="link">Source</a> <a href="#v:dropWord16" class="selflink">#</a></p><div class="doc"><p><em>O(1)</em> Return the suffix of the <code><a href="Data-Text.html#t:Text">Text</a></code>, with <code>n</code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a></code> units
 dropped from its beginning.</p><p>If <code>n</code> would cause the <code><a href="Data-Text.html#t:Text">Text</a></code> to begin inside a surrogate pair, the
 beginning of the suffix will be advanced by one additional <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a></code>
 unit to maintain its validity.</p></div></div><div class="top"><p class="src"><a id="v:takeWord16" class="def">takeWord16</a> :: <a href="Data-Text-Foreign.html#t:I16">I16</a> -&gt; <a href="Data-Text.html#t:Text">Text</a> -&gt; <a href="Data-Text.html#t:Text">Text</a> <a href="src/Data-Text-Foreign.html#takeWord16" class="link">Source</a> <a href="#v:takeWord16" class="selflink">#</a></p><div class="doc"><p><em>O(1)</em> Return the prefix of the <code><a href="Data-Text.html#t:Text">Text</a></code> of <code>n</code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a></code> units in
 length.</p><p>If <code>n</code> would cause the <code><a href="Data-Text.html#t:Text">Text</a></code> to end inside a surrogate pair, the
 end of the prefix will be advanced by one additional <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word16">Word16</a></code> unit
 to maintain its validity.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.2</p></div></body></html>