Sophie

Sophie

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

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>Text.Read</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_Text-Read.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.5.1.0: Basic libraries</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (uses Text.ParserCombinators.ReadP)</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Text.Read</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The <code><a href="Text-Read.html#t:Read">Read</a></code> class
</a></li><li><a href="#g:2">Haskell 98 functions
</a></li><li><a href="#g:3">New parsing functions
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Converting strings to values.
</p><p>The <a href="Text-Read.html">Text.Read</a> library is the canonical library to import for
 <code><a href="Text-Read.html#t:Read">Read</a></code>-class facilities.  For GHC only, it offers an extended and much
 improved <code><a href="Text-Read.html#t:Read">Read</a></code> class, which constitutes a proposed alternative to the 
 Haskell 98 <code><a href="Text-Read.html#t:Read">Read</a></code>.  In particular, writing parsers is easier, and
 the parsers are much more efficient.
</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">class</span>  <a href="#t:Read">Read</a> a  <span class="keyword">where</span><ul class="subs"><li><a href="#v:readsPrec">readsPrec</a> :: <a href="Data-Int.html#t:Int">Int</a> -&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> a</li><li><a href="#v:readList">readList</a> :: <a href="Text-Read.html#t:ReadS">ReadS</a> [a]</li><li><a href="#v:readPrec">readPrec</a> :: <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> a</li><li><a href="#v:readListPrec">readListPrec</a> :: <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [a]</li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:ReadS">ReadS</a> a = <a href="Data-String.html#t:String">String</a> -&gt; [(a, <a href="Data-String.html#t:String">String</a>)]</li><li class="src short"><a href="#v:reads">reads</a> :: <a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> a</li><li class="src short"><a href="#v:read">read</a> :: <a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Data-String.html#t:String">String</a> -&gt; a</li><li class="src short"><a href="#v:readParen">readParen</a> ::  <a href="Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> a -&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> a</li><li class="src short"><a href="#v:lex">lex</a> :: <a href="Text-Read.html#t:ReadS">ReadS</a> <a href="Data-String.html#t:String">String</a></li><li class="src short">module <a href="Text-ParserCombinators-ReadPrec.html">Text.ParserCombinators.ReadPrec</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Lexeme">Lexeme</a> <ul class="subs"><li>= <a href="#v:Char">Char</a> <a href="Data-Char.html#t:Char">Char</a>  </li><li>| <a href="#v:String">String</a> <a href="Data-String.html#t:String">String</a>  </li><li>| <a href="#v:Punc">Punc</a> <a href="Data-String.html#t:String">String</a>  </li><li>| <a href="#v:Ident">Ident</a> <a href="Data-String.html#t:String">String</a>  </li><li>| <a href="#v:Symbol">Symbol</a> <a href="Data-String.html#t:String">String</a>  </li><li>| <a href="#v:Int">Int</a> <a href="Prelude.html#t:Integer">Integer</a>  </li><li>| <a href="#v:Rat">Rat</a> <a href="Prelude.html#t:Rational">Rational</a>  </li><li>| <a href="#v:EOF">EOF</a>  </li></ul></li><li class="src short"><a href="#v:lexP">lexP</a> :: <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Text-Read.html#t:Lexeme">Lexeme</a></li><li class="src short"><a href="#v:parens">parens</a> ::  <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> a -&gt; <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> a</li><li class="src short"><a href="#v:readListDefault">readListDefault</a> :: <a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> [a]</li><li class="src short"><a href="#v:readListPrecDefault">readListPrecDefault</a> :: <a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [a]</li></ul></div><div id="interface"><h1 id="g:1">The <code><a href="Text-Read.html#t:Read">Read</a></code> class
</h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Read" class="def">Read</a> a  <span class="keyword">where</span></p><div class="doc"><p>Parsing of <code><a href="Data-String.html#t:String">String</a></code>s, producing values.
</p><p>Minimal complete definition: <code><a href="Text-Read.html#v:readsPrec">readsPrec</a></code> (or, for GHC only, <code><a href="Text-Read.html#v:readPrec">readPrec</a></code>)
</p><p>Derived instances of <code><a href="Text-Read.html#t:Read">Read</a></code> make the following assumptions, which
 derived instances of <code><a href="Text-Show.html#t:Show">Show</a></code> obey:
</p><ul><li> If the constructor is defined to be an infix operator, then the
   derived <code><a href="Text-Read.html#t:Read">Read</a></code> instance will parse only infix applications of
   the constructor (not the prefix form).
</li><li> Associativity is not used to reduce the occurrence of parentheses,
   although precedence may be.
</li><li> If the constructor is defined using record syntax, the derived <code><a href="Text-Read.html#t:Read">Read</a></code>
   will parse only the record-syntax form, and furthermore, the fields
   must be given in the same order as the original declaration.
</li><li> The derived <code><a href="Text-Read.html#t:Read">Read</a></code> instance allows arbitrary Haskell whitespace
   between tokens of the input string.  Extra parentheses are also
   allowed.
</li></ul><p>For example, given the declarations
</p><pre> infixr 5 :^:
 data Tree a =  Leaf a  |  Tree a :^: Tree a
</pre><p>the derived instance of <code><a href="Text-Read.html#t:Read">Read</a></code> in Haskell 98 is equivalent to
</p><pre> instance (Read a) =&gt; Read (Tree a) where

         readsPrec d r =  readParen (d &gt; app_prec)
                          (\r -&gt; [(Leaf m,t) |
                                  (&quot;Leaf&quot;,s) &lt;- lex r,
                                  (m,t) &lt;- readsPrec (app_prec+1) s]) r

                       ++ readParen (d &gt; up_prec)
                          (\r -&gt; [(u:^:v,w) |
                                  (u,s) &lt;- readsPrec (up_prec+1) r,
                                  (&quot;:^:&quot;,t) &lt;- lex s,
                                  (v,w) &lt;- readsPrec (up_prec+1) t]) r

           where app_prec = 10
                 up_prec = 5
</pre><p>Note that right-associativity of <code>:^:</code> is unused.
</p><p>The derived instance in GHC is equivalent to
</p><pre> instance (Read a) =&gt; Read (Tree a) where

         readPrec = parens $ (prec app_prec $ do
                                  Ident &quot;Leaf&quot; &lt;- lexP
                                  m &lt;- step readPrec
                                  return (Leaf m))

                      +++ (prec up_prec $ do
                                  u &lt;- step readPrec
                                  Symbol &quot;:^:&quot; &lt;- lexP
                                  v &lt;- step readPrec
                                  return (u :^: v))

           where app_prec = 10
                 up_prec = 5

         readListPrec = readListPrecDefault
</pre></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:readsPrec" class="def">readsPrec</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Data-Int.html#t:Int">Int</a></td><td class="doc"><p>the operator precedence of the enclosing
 context (a number from <code>0</code> to <code>11</code>).
 Function application has precedence <code>10</code>.
</p></td></tr><tr><td class="src">-&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>attempts to parse a value from the front of the string, returning
 a list of (parsed value, remaining string) pairs.  If there is no
 successful parse, the returned list is empty.
</p><p>Derived instances of <code><a href="Text-Read.html#t:Read">Read</a></code> and <code><a href="Text-Show.html#t:Show">Show</a></code> satisfy the following:
</p><ul><li> <code>(x,&quot;&quot;)</code> is an element of
   <code>(<code><a href="Text-Read.html#v:readsPrec">readsPrec</a></code> d (<code><a href="Text-Show.html#v:showsPrec">showsPrec</a></code> d x &quot;&quot;))</code>.
</li></ul><p>That is, <code><a href="Text-Read.html#v:readsPrec">readsPrec</a></code> parses the string produced by
 <code><a href="Text-Show.html#v:showsPrec">showsPrec</a></code>, and delivers the value that
 <code><a href="Text-Show.html#v:showsPrec">showsPrec</a></code> started with.
</p></div><p class="src"><a name="v:readList" class="def">readList</a> :: <a href="Text-Read.html#t:ReadS">ReadS</a> [a]</p><div class="doc"><p>The method <code><a href="Text-Read.html#v:readList">readList</a></code> is provided to allow the programmer to
 give a specialised way of parsing lists of values.
 For example, this is used by the predefined <code><a href="Text-Read.html#t:Read">Read</a></code> instance of
 the <code><a href="Data-Char.html#t:Char">Char</a></code> type, where values of type <code><a href="Data-String.html#t:String">String</a></code> should be are
 expected to use double quotes, rather than square brackets.
</p></div><p class="src"><a name="v:readPrec" class="def">readPrec</a> :: <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> a</p><div class="doc"><p>Proposed replacement for <code><a href="Text-Read.html#v:readsPrec">readsPrec</a></code> using new-style parsers (GHC only).
</p></div><p class="src"><a name="v:readListPrec" class="def">readListPrec</a> :: <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [a]</p><div class="doc"><p>Proposed replacement for <code><a href="Text-Read.html#v:readList">readList</a></code> using new-style parsers (GHC only).
 The default definition uses <code><a href="Text-Read.html#v:readList">readList</a></code>.  Instances that define <code><a href="Text-Read.html#v:readPrec">readPrec</a></code>
 should also define <code><a href="Text-Read.html#v:readListPrec">readListPrec</a></code> as <code><a href="Text-Read.html#v:readListPrecDefault">readListPrecDefault</a></code>.
</p></div></div><div class="subs instances"><p id="control.i:Read" class="caption collapser" onclick="toggleSection('i:Read')">Instances</p><div id="section.i:Read" class="show"><table><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Char.html#t:Char">Char</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Prelude.html#t:Double">Double</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Prelude.html#t:Float">Float</a></td><td class="doc empty">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Prelude.html#t:Integer">Integer</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Ord.html#t:Ordering">Ordering</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Word.html#t:Word">Word</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Word.html#t:Word8">Word8</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Word.html#t:Word16">Word16</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Word.html#t:Word32">Word32</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Word.html#t:Word64">Word64</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> ()</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="../ghc-prim-0.2.0.0/GHC-Generics.html#t:Arity">Arity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="../ghc-prim-0.2.0.0/GHC-Generics.html#t:Fixity">Fixity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="../ghc-prim-0.2.0.0/GHC-Generics.html#t:Associativity">Associativity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Text-Read.html#t:Lexeme">Lexeme</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-IO.html#t:IOMode">IOMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="GHC-IO-Device.html#t:SeekMode">SeekMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CUIntMax">CUIntMax</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CIntMax">CIntMax</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CUIntPtr">CUIntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CIntPtr">CIntPtr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CSUSeconds">CSUSeconds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CUSeconds">CUSeconds</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CTime">CTime</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CClock">CClock</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CSigAtomic">CSigAtomic</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CWchar">CWchar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CSize">CSize</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CPtrdiff">CPtrdiff</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CDouble">CDouble</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CFloat">CFloat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CULLong">CULLong</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CLLong">CLLong</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CULong">CULong</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CLong">CLong</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CUInt">CUInt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CInt">CInt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CUShort">CUShort</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CShort">CShort</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CUChar">CUChar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CSChar">CSChar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Foreign-C-Types.html#t:CChar">CChar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Char.html#t:GeneralCategory">GeneralCategory</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.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="Text-Read.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="Text-Read.html#t:Read">Read</a> <a href="Data-Monoid.html#t:Any">Any</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Monoid.html#t:All">All</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="GHC-IO-Handle.html#t:NewlineMode">NewlineMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="GHC-IO-Handle.html#t:Newline">Newline</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="GHC-IO-Handle.html#t:BufferMode">BufferMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Exit.html#t:ExitCode">ExitCode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:Fd">Fd</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CRLim">CRLim</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CTcflag">CTcflag</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CSpeed">CSpeed</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CCc">CCc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CUid">CUid</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CNlink">CNlink</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CGid">CGid</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CSsize">CSsize</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CPid">CPid</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:COff">COff</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CMode">CMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CIno">CIno</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="System-Posix-Types.html#t:CDev">CDev</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="GHC-Stats.html#t:GCStats">GCStats</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Data-Version.html#t:Version">Version</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:Read">Read</a> [a]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Prelude.html#t:Integral">Integral</a> a, <a href="Text-Read.html#t:Read">Read</a> a) =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Ratio.html#t:Ratio">Ratio</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Maybe.html#t:Maybe">Maybe</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Monoid.html#t:Last">Last</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Monoid.html#t:First">First</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Monoid.html#t:Product">Product</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Monoid.html#t:Sum">Sum</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Monoid.html#t:Dual">Dual</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Complex.html#t:Complex">Complex</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Data-Fixed.html#t:HasResolution">HasResolution</a> a =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Fixed.html#t:Fixed">Fixed</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b) =&gt; <a href="Text-Read.html#t:Read">Read</a> (<a href="Data-Either.html#t:Either">Either</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Data-Ix.html#t:Ix">Ix</a> a, <a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b) =&gt; <a href="Text-Read.html#t:Read">Read</a> (Array a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f, <a href="Text-Read.html#t:Read">Read</a> g) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f, g)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f, <a href="Text-Read.html#t:Read">Read</a> g, <a href="Text-Read.html#t:Read">Read</a> h) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f, g, h)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f, <a href="Text-Read.html#t:Read">Read</a> g, <a href="Text-Read.html#t:Read">Read</a> h, <a href="Text-Read.html#t:Read">Read</a> i) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f, g, h, i)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f, <a href="Text-Read.html#t:Read">Read</a> g, <a href="Text-Read.html#t:Read">Read</a> h, <a href="Text-Read.html#t:Read">Read</a> i, <a href="Text-Read.html#t:Read">Read</a> j) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f, g, h, i, j)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f, <a href="Text-Read.html#t:Read">Read</a> g, <a href="Text-Read.html#t:Read">Read</a> h, <a href="Text-Read.html#t:Read">Read</a> i, <a href="Text-Read.html#t:Read">Read</a> j, <a href="Text-Read.html#t:Read">Read</a> k) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f, g, h, i, j, k)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f, <a href="Text-Read.html#t:Read">Read</a> g, <a href="Text-Read.html#t:Read">Read</a> h, <a href="Text-Read.html#t:Read">Read</a> i, <a href="Text-Read.html#t:Read">Read</a> j, <a href="Text-Read.html#t:Read">Read</a> k, <a href="Text-Read.html#t:Read">Read</a> l) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f, g, h, i, j, k, l)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f, <a href="Text-Read.html#t:Read">Read</a> g, <a href="Text-Read.html#t:Read">Read</a> h, <a href="Text-Read.html#t:Read">Read</a> i, <a href="Text-Read.html#t:Read">Read</a> j, <a href="Text-Read.html#t:Read">Read</a> k, <a href="Text-Read.html#t:Read">Read</a> l, <a href="Text-Read.html#t:Read">Read</a> m) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f, g, h, i, j, k, l, m)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f, <a href="Text-Read.html#t:Read">Read</a> g, <a href="Text-Read.html#t:Read">Read</a> h, <a href="Text-Read.html#t:Read">Read</a> i, <a href="Text-Read.html#t:Read">Read</a> j, <a href="Text-Read.html#t:Read">Read</a> k, <a href="Text-Read.html#t:Read">Read</a> l, <a href="Text-Read.html#t:Read">Read</a> m, <a href="Text-Read.html#t:Read">Read</a> n) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f, g, h, i, j, k, l, m, n)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Text-Read.html#t:Read">Read</a> a, <a href="Text-Read.html#t:Read">Read</a> b, <a href="Text-Read.html#t:Read">Read</a> c, <a href="Text-Read.html#t:Read">Read</a> d, <a href="Text-Read.html#t:Read">Read</a> e, <a href="Text-Read.html#t:Read">Read</a> f, <a href="Text-Read.html#t:Read">Read</a> g, <a href="Text-Read.html#t:Read">Read</a> h, <a href="Text-Read.html#t:Read">Read</a> i, <a href="Text-Read.html#t:Read">Read</a> j, <a href="Text-Read.html#t:Read">Read</a> k, <a href="Text-Read.html#t:Read">Read</a> l, <a href="Text-Read.html#t:Read">Read</a> m, <a href="Text-Read.html#t:Read">Read</a> n, <a href="Text-Read.html#t:Read">Read</a> o) =&gt; <a href="Text-Read.html#t:Read">Read</a> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ReadS" class="def">ReadS</a> a = <a href="Data-String.html#t:String">String</a> -&gt; [(a, <a href="Data-String.html#t:String">String</a>)]</p><div class="doc"><p>A parser for a type <code>a</code>, represented as a function that takes a
 <code><a href="Data-String.html#t:String">String</a></code> and returns a list of possible parses as <code>(a,<code><a href="Data-String.html#t:String">String</a></code>)</code> pairs.
</p><p>Note that this kind of backtracking parser is very inefficient;
 reading a large structure may be quite slow (cf <code><a href="Text-ParserCombinators-ReadP.html#t:ReadP">ReadP</a></code>).
</p></div></div><h1 id="g:2">Haskell 98 functions
</h1><div class="top"><p class="src"><a name="v:reads" class="def">reads</a> :: <a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> a</p><div class="doc"><p>equivalent to <code><a href="Text-Read.html#v:readsPrec">readsPrec</a></code> with a precedence of 0.
</p></div></div><div class="top"><p class="src"><a name="v:read" class="def">read</a> :: <a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Data-String.html#t:String">String</a> -&gt; a</p><div class="doc"><p>The <code><a href="Text-Read.html#v:read">read</a></code> function reads input from a string, which must be
 completely consumed by the input process.
</p></div></div><div class="top"><p class="src"><a name="v:readParen" class="def">readParen</a> ::  <a href="Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> a -&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> a</p><div class="doc"><p><code><code><a href="Text-Read.html#v:readParen">readParen</a></code> <code><a href="Data-Bool.html#v:True">True</a></code> p</code> parses what <code>p</code> parses, but surrounded with
 parentheses.
</p><p><code><code><a href="Text-Read.html#v:readParen">readParen</a></code> <code><a href="Data-Bool.html#v:False">False</a></code> p</code> parses what <code>p</code> parses, but optionally
 surrounded with parentheses.
</p></div></div><div class="top"><p class="src"><a name="v:lex" class="def">lex</a> :: <a href="Text-Read.html#t:ReadS">ReadS</a> <a href="Data-String.html#t:String">String</a></p><div class="doc"><p>The <code><a href="Text-Read.html#v:lex">lex</a></code> function reads a single lexeme from the input, discarding
 initial white space, and returning the characters that constitute the
 lexeme.  If the input string contains only white space, <code><a href="Text-Read.html#v:lex">lex</a></code> returns a
 single successful `lexeme' consisting of the empty string.  (Thus
 <code><code><a href="Text-Read.html#v:lex">lex</a></code> &quot;&quot; = [(&quot;&quot;,&quot;&quot;)]</code>.)  If there is no legal lexeme at the
 beginning of the input string, <code><a href="Text-Read.html#v:lex">lex</a></code> fails (i.e. returns <code>[]</code>).
</p><p>This lexer is not completely faithful to the Haskell lexical syntax
 in the following respects:
</p><ul><li> Qualified names are not handled properly
</li><li> Octal and hexadecimal numerics are not recognized as a single token
</li><li> Comments are not treated properly
</li></ul></div></div><h1 id="g:3">New parsing functions
</h1><div class="top"><p class="src">module <a href="Text-ParserCombinators-ReadPrec.html">Text.ParserCombinators.ReadPrec</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Lexeme" class="def">Lexeme</a>  </p><div class="doc"><p>Haskell lexemes.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Char" class="def">Char</a> <a href="Data-Char.html#t:Char">Char</a></td><td class="doc"><p>Character literal
</p></td></tr><tr><td class="src"><a name="v:String" class="def">String</a> <a href="Data-String.html#t:String">String</a></td><td class="doc"><p>String literal, with escapes interpreted
</p></td></tr><tr><td class="src"><a name="v:Punc" class="def">Punc</a> <a href="Data-String.html#t:String">String</a></td><td class="doc"><p>Punctuation or reserved symbol, e.g. <code>(</code>, <code>::</code>
</p></td></tr><tr><td class="src"><a name="v:Ident" class="def">Ident</a> <a href="Data-String.html#t:String">String</a></td><td class="doc"><p>Haskell identifier, e.g. <code>foo</code>, <code>Baz</code>
</p></td></tr><tr><td class="src"><a name="v:Symbol" class="def">Symbol</a> <a href="Data-String.html#t:String">String</a></td><td class="doc"><p>Haskell symbol, e.g. <code>&gt;&gt;</code>, <code>:%</code>
</p></td></tr><tr><td class="src"><a name="v:Int" class="def">Int</a> <a href="Prelude.html#t:Integer">Integer</a></td><td class="doc"><p>Integer literal
</p></td></tr><tr><td class="src"><a name="v:Rat" class="def">Rat</a> <a href="Prelude.html#t:Rational">Rational</a></td><td class="doc"><p>Floating point literal
</p></td></tr><tr><td class="src"><a name="v:EOF" class="def">EOF</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Lexeme" class="caption collapser" onclick="toggleSection('i:Lexeme')">Instances</p><div id="section.i:Lexeme" class="show"><table><tr><td class="src"><a href="Data-Eq.html#t:Eq">Eq</a> <a href="Text-Read.html#t:Lexeme">Lexeme</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Read.html#t:Read">Read</a> <a href="Text-Read.html#t:Lexeme">Lexeme</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Text-Show.html#t:Show">Show</a> <a href="Text-Read.html#t:Lexeme">Lexeme</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:lexP" class="def">lexP</a> :: <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Text-Read.html#t:Lexeme">Lexeme</a></p><div class="doc"><p>Parse a single lexeme
</p></div></div><div class="top"><p class="src"><a name="v:parens" class="def">parens</a> ::  <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> a -&gt; <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> a</p><div class="doc"><p><code>(parens p)</code> parses &quot;P&quot;, &quot;(P0)&quot;, &quot;((P0))&quot;, etc, 
      where <code>p</code> parses &quot;P&quot;  in the current precedence context
          and parses &quot;P0&quot; in precedence context zero
</p></div></div><div class="top"><p class="src"><a name="v:readListDefault" class="def">readListDefault</a> :: <a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-Read.html#t:ReadS">ReadS</a> [a]</p><div class="doc"><p>A possible replacement definition for the <code><a href="Text-Read.html#v:readList">readList</a></code> method (GHC only).
   This is only needed for GHC, and even then only for <code><a href="Text-Read.html#t:Read">Read</a></code> instances
   where <code><a href="Text-Read.html#v:readListPrec">readListPrec</a></code> isn't defined as <code><a href="Text-Read.html#v:readListPrecDefault">readListPrecDefault</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:readListPrecDefault" class="def">readListPrecDefault</a> :: <a href="Text-Read.html#t:Read">Read</a> a =&gt; <a href="Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [a]</p><div class="doc"><p>A possible replacement definition for the <code><a href="Text-Read.html#v:readListPrec">readListPrec</a></code> method,
   defined using <code><a href="Text-Read.html#v:readPrec">readPrec</a></code> (GHC only).
</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>