packages feed

regexqq (empty) → 0.1

raw patch · 17 files changed

+3292/−0 lines, 17 filesdep +basedep +bytestringdep +pcre-lightsetup-changedbinary-added

Dependencies added: base, bytestring, pcre-light, template-haskell

Files

+ EXAMPLES view
@@ -0,0 +1,35 @@+regexqq - EXAMPLES+----------------------------------------------------------------------------------------++-- Here is a pasteable-into-ghci version of the below:++:m + Text.Regex.PCRE.QQ+[$rx|([aeiou]).*(er|ing|tion)([\.,!\?]*)$|] "helloing.!?!?!"+[$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+tail `fmap` [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+return . tail =<< [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)(.*)$|] (show (negate pi) ++ "asdx")++----------------------------------------------------------------------------------------++ghci> :m + Text.Regex.PCRE.QQ++ghci> [$rx|([aeiou]).*(er|ing|tion)([\.,!\?]*)$|] "helloing.!?!?!"+Just ["elloing.!?!?!","e","ing",".!?!?!"]++ghci> [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+Just ["-3.141592653589793","-","3","141592653589793"]++ghci> tail `fmap` [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+Just ["-","3","141592653589793"]+ghci> return . tail =<< [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+Just ["-","3","141592653589793"]++ghci> maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+["-","3","141592653589793"]++ghci> maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)(.*)$|] (show (negate pi) ++ "asdx")+["-","3","141592653589793","asdx"]++----------------------------------------------------------------------------------------
+ LICENSE view
@@ -0,0 +1,26 @@+Copyright (c) Matt Morrow.+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions+are met:+1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The names of the author may not be used to endorse or promote+   products derived from this software without specific prior written+   permission.++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF+SUCH DAMAGE.
+ QQ.html view
@@ -0,0 +1,144 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">+<html>+<pre><font color=Blue>{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}</font>++<font color=Blue>{-|+  Module      :  Text.Regex.PCRE.QQ+  Copyright   :  (c) Matt Morrow 2008+  License     :  BSD3++  Maintainer  :  mjm2002@gmail.com+  Stability   :  unstable+  Portability :  non-portable (GHC QuasiQuotes)++  A quasiquoter for Text.Regex.PCRE regexes.+  This makes use of a new GHC extension known as QuasiQuotes.+  See the README for the temporary location of the docs for+  Language.Haskell.TH.Quote. See the EXAMPLES file for examples.++  &gt; ghci&gt; [$rx|([aeiou]).*(er|ing|tion)([\.,\?]*)$|] "helloing.!?!?!"+  &gt; Just ["elloing.!?!?!","e","ing",".!?!?!"]+-}</font>++<font color=Green><u>module</u></font> Text<font color=Cyan>.</font>Regex<font color=Cyan>.</font>PCRE<font color=Cyan>.</font>QQ <font color=Cyan>(</font>+    rx            <font color=Blue>-- the regex QuasiQuoter</font>+  <font color=Cyan>,</font> regexToExpQ   <font color=Blue>-- String -&gt; ExpQ</font>+  <font color=Cyan>,</font> regexToPatQ   <font color=Blue>-- String -&gt; PatQ</font>++  <font color=Blue>-- should these be being exported here??</font>+  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>TH<font color=Cyan>.</font>Quote+  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>TH<font color=Cyan>.</font>Syntax+  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>TH<font color=Cyan>.</font>Lib+  <font color=Cyan>,</font> <font color=Green><u>module</u></font> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>TH<font color=Cyan>.</font>Ppr+<font color=Cyan>)</font> <font color=Green><u>where</u></font>++<font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>TH<font color=Cyan>.</font>Quote+<font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>TH<font color=Cyan>.</font>Syntax+<font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>TH<font color=Cyan>.</font>Lib+  hiding <font color=Cyan>(</font>match<font color=Cyan>)</font>+<font color=Green><u>import</u></font> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>TH<font color=Cyan>.</font>Ppr+<font color=Green><u>import</u></font> Text<font color=Cyan>.</font>Regex<font color=Cyan>.</font>PCRE<font color=Cyan>.</font>Light+  <font color=Cyan>(</font>Regex<font color=Cyan>,</font>PCREOption<font color=Cyan>,</font>PCREExecOption<font color=Cyan>)</font>+<font color=Green><u>import</u></font> <font color=Green><u>qualified</u></font>+  Text<font color=Cyan>.</font>Regex<font color=Cyan>.</font>PCRE<font color=Cyan>.</font>Light <font color=Green><u>as</u></font> PCRE+<font color=Green><u>import</u></font> Data<font color=Cyan>.</font>ByteString <font color=Cyan>(</font>ByteString<font color=Cyan>)</font>+<font color=Green><u>import</u></font> <font color=Green><u>qualified</u></font> Data<font color=Cyan>.</font>ByteString <font color=Green><u>as</u></font> B+<font color=Green><u>import</u></font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Internal <font color=Cyan>(</font>c2w<font color=Cyan>,</font>w2c<font color=Cyan>)</font>++<font color=Blue>-----------------------------------------------------------------------------</font>++<font color=Blue>{- data QuasiQuoter+    = QuasiQuoter { quoteExp :: String -&gt; Q Exp,+                    quotePat :: String -&gt; Q Pat}+              -- Defined in Language.Haskell.TH.Quote -}</font>++<font color=Blue>{- |+&gt; ghci&gt; maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+&gt; ["-","3","141592653589793"]+-}</font>+<font color=Blue>rx</font> <font color=Red>::</font> QuasiQuoter+<font color=Blue>rx</font> <font color=Red>=</font> QuasiQuoter+        regexToExpQ+        regexToPatQ++<font color=Blue>-- | Transform a string rep</font>+<font color=Blue>-- of a regex to an ExpQ. The</font>+<font color=Blue>-- resulting ExpQ, when spliced,</font>+<font color=Blue>-- results in a function of type</font>+<font color=Blue>-- @String -&gt; Maybe [String]@,</font>+<font color=Blue>-- where the input is the String</font>+<font color=Blue>-- to match on. The result is</font>+<font color=Blue>-- Nothing on error, and Just</font>+<font color=Blue>-- a list of results on success.</font>+<font color=Blue>-- Note: I'm packing\/unpacking\/...</font>+<font color=Blue>-- the ByteString unnecessarily</font>+<font color=Blue>-- for convenience in testing</font>+<font color=Blue>-- out the first go at this.</font>+<font color=Blue>-- This will be dealt with in</font>+<font color=Blue>-- the future.</font>+<font color=Blue>regexToExpQ</font> <font color=Red>::</font> String <font color=Red>-&gt;</font> ExpQ+<font color=Blue>regexToExpQ</font> s <font color=Red>=</font> <font color=Green><u>case</u></font> PCRE<font color=Cyan>.</font>compileM <font color=Cyan>(</font>pack s<font color=Cyan>)</font> pcreOpts <font color=Green><u>of</u></font>+                  Left err <font color=Red>-&gt;</font> error err+		             <font color=Blue>-- Give an error at compile time</font>+			     <font color=Blue>-- if the regex string is invalid</font>+		  Right <font color=Green><u>_</u></font>  <font color=Red>-&gt;</font> <font color=Red>[</font><font color=Red>|</font>+                               <font color=Cyan>(</font>return <font color=Cyan>.</font> fmap unpack <font color=Cyan>=&lt;&lt;</font><font color=Cyan>)</font>+                                     <font color=Cyan>.</font> match <font color=Cyan>(</font>regex s<font color=Cyan>)</font> <font color=Cyan>.</font> pack+				     <font color=Red>|</font><font color=Red>]</font>++<font color=Blue>-- | Transform a string (presumably)</font>+<font color=Blue>--  containing a regex to a PatQ.</font>+<font color=Blue>-- NOTE: Given a regex, a pattern</font>+<font color=Blue>--    is constructed which matches</font>+<font color=Blue>--    a literal string containing</font>+<font color=Blue>--    the verbatim regex. It does</font>+<font color=Blue>--    this because I couldn't think</font>+<font color=Blue>--    of anything better for it to</font>+<font color=Blue>--    do off the cuff. This needs</font>+<font color=Blue>--    thought.</font>+<font color=Blue>regexToPatQ</font> <font color=Red>::</font> String <font color=Red>-&gt;</font> PatQ+<font color=Blue>regexToPatQ</font> <font color=Red>=</font>+  litP <font color=Cyan>.</font> stringL+    <font color=Cyan>.</font> dropWhile <font color=Cyan>(</font><font color=Cyan>/=</font><font color=Magenta>'"'</font><font color=Cyan>)</font>+      <font color=Cyan>.</font> show <font color=Cyan>.</font> regex++<font color=Blue>-- | Regex compilation. Temporarily uses</font>+<font color=Blue>--  hardcoded options @extended@ and</font>+<font color=Blue>--  @multiline@.</font>+<font color=Blue>regex</font> <font color=Red>::</font> String <font color=Red>-&gt;</font> Regex+<font color=Blue>regex</font> <font color=Red>=</font> flip PCRE<font color=Cyan>.</font>compile pcreOpts <font color=Cyan>.</font> pack++<font color=Blue>-- | Regex matching.</font>+<font color=Blue>match</font> <font color=Red>::</font> Regex <font color=Red>-&gt;</font> B<font color=Cyan>.</font>ByteString <font color=Red>-&gt;</font> Maybe <font color=Red>[</font>B<font color=Cyan>.</font>ByteString<font color=Red>]</font>+<font color=Blue>match</font> rx <font color=Red>=</font> flip <font color=Cyan>(</font>PCRE<font color=Cyan>.</font>match rx<font color=Cyan>)</font> pcreExecOpts++<font color=Blue>-- | Adjust these to your tastes. An</font>+<font color=Blue>--  interface to options seems to be</font>+<font color=Blue>--  the next logical (and practical)</font>+<font color=Blue>--  step.</font>+<font color=Blue>pcreOpts</font> <font color=Red>::</font> <font color=Red>[</font>PCREOption<font color=Red>]</font>+<font color=Blue>pcreOpts</font> <font color=Red>=</font>+  <font color=Red>[</font> PCRE<font color=Cyan>.</font>extended+  <font color=Cyan>,</font> PCRE<font color=Cyan>.</font>multiline <font color=Red>]</font>+  <font color=Blue>-- , dotall, caseless, utf8</font>+  <font color=Blue>-- , newline_any, PCRE.newline_crlf ]</font>++<font color=Blue>-- | Adjust these to your tastes. An</font>+<font color=Blue>--  interface to options seems to be</font>+<font color=Blue>--  the next logical (and practical)</font>+<font color=Blue>--  step.</font>+<font color=Blue>pcreExecOpts</font> <font color=Red>::</font> <font color=Red>[</font>PCREExecOption<font color=Red>]</font>+<font color=Blue>pcreExecOpts</font> <font color=Red>=</font> []+  <font color=Blue>-- [ PCRE.exec_newline_crlf</font>+  <font color=Blue>-- , exec_newline_any, PCRE.exec_notempty</font>+  <font color=Blue>-- , PCRE.exec_notbol, PCRE.exec_noteol ]</font>++<font color=Blue>pack</font> <font color=Red>::</font> String <font color=Red>-&gt;</font> ByteString+<font color=Blue>pack</font> <font color=Red>=</font> B<font color=Cyan>.</font>pack <font color=Cyan>.</font> fmap c2w++<font color=Blue>unpack</font> <font color=Red>::</font> ByteString <font color=Red>-&gt;</font> String+<font color=Blue>unpack</font> <font color=Red>=</font> fmap w2c <font color=Cyan>.</font> B<font color=Cyan>.</font>unpack++<font color=Blue>-----------------------------------------------------------------------------</font>+</pre>+</html>
+ README view
@@ -0,0 +1,14 @@+regexqq - Matt Morrow, 2008.++The current (as of 080623) location of the+current template-haskell docs are temporarily+(until they're located in the standard place)+available at:++http://code.haskell.org/~morrow/code/haskell/misc/template-haskell-HEAD_080623/++An example:++ghci> :m + Text.Regex.PCRE.QQ+ghci> [$rx|([aeiou]).*(er|ing|tion)([\.,!\?]*)$|] "helloing.!?!?!"+Just ["elloing.!?!?!","e","ing",".!?!?!"]
+ README.ghc-6.8 view
@@ -0,0 +1,13 @@+ghc-6.8.* doesn't yet support QuasiQuotes.++BUT, there is a patched ghc-6.8.3 that *does*+support QuasiQuotes at:++http://code.haskell.org/~morrow/quasiquotes/ghc-6.8.3_QQ-0.1.tar.bz2++NOTE:+  ghc-6.8.3_QQ-0.1.tar.bz2 *already*+  has the extralibs included.++If you are unwilling/unable to use ghc-6.9, then building+ghc-6.8.3_QQ-0.1 is the only option.
+ Setup.lhs view
@@ -0,0 +1,4 @@+> import Distribution.Simple+> main :: IO ()+> main = defaultMain+
+ Text/Regex/PCRE/QQ.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}++{-|+  Module      :  Text.Regex.PCRE.QQ+  Copyright   :  (c) Matt Morrow 2008+  License     :  BSD3++  Maintainer  :  mjm2002@gmail.com+  Stability   :  unstable+  Portability :  non-portable (GHC QuasiQuotes)++  A quasiquoter for Text.Regex.PCRE regexes.+  This makes use of a new GHC extension known as QuasiQuotes.+  See the README for the temporary location of the docs for+  Language.Haskell.TH.Quote. See the EXAMPLES file for examples.++  > ghci> [$rx|([aeiou]).*(er|ing|tion)([\.,\?]*)$|] "helloing.!?!?!"+  > Just ["elloing.!?!?!","e","ing",".!?!?!"]+-}++module Text.Regex.PCRE.QQ (+    rx            -- the regex QuasiQuoter+  , regexToExpQ   -- String -> ExpQ+  , regexToPatQ   -- String -> PatQ++  -- should these be being exported here??+  , module Language.Haskell.TH.Quote+  , module Language.Haskell.TH.Syntax+  , module Language.Haskell.TH.Lib+  , module Language.Haskell.TH.Ppr+) where++import Language.Haskell.TH.Quote+import Language.Haskell.TH.Syntax+import Language.Haskell.TH.Lib+  hiding (match)+import Language.Haskell.TH.Ppr+import Text.Regex.PCRE.Light+  (Regex,PCREOption,PCREExecOption)+import qualified+  Text.Regex.PCRE.Light as PCRE+import Data.ByteString (ByteString)+import qualified Data.ByteString as B+import Data.ByteString.Internal (c2w,w2c)++-----------------------------------------------------------------------------++{- data QuasiQuoter+    = QuasiQuoter { quoteExp :: String -> Q Exp,+                    quotePat :: String -> Q Pat}+              -- Defined in Language.Haskell.TH.Quote -}++{- |+> ghci> maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+> ["-","3","141592653589793"]+-}+rx :: QuasiQuoter+rx = QuasiQuoter+        regexToExpQ+        regexToPatQ++-- | Transform a string rep+-- of a regex to an ExpQ. The+-- resulting ExpQ, when spliced,+-- results in a function of type+-- @String -> Maybe [String]@,+-- where the input is the String+-- to match on. The result is+-- Nothing on error, and Just+-- a list of results on success.+-- Note: I'm packing\/unpacking\/...+-- the ByteString unnecessarily+-- for convenience in testing+-- out the first go at this.+-- This will be dealt with in+-- the future.+regexToExpQ :: String -> ExpQ+regexToExpQ s = case PCRE.compileM (pack s) pcreOpts of+                  Left err -> error err+		             -- Give an error at compile time+			     -- if the regex string is invalid+		  Right _  -> [|+                               (return . fmap unpack =<<)+                                     . match (regex s) . pack+				     |]++-- | Transform a string (presumably)+--  containing a regex to a PatQ.+-- NOTE: Given a regex, a pattern+--    is constructed which matches+--    a literal string containing+--    the verbatim regex. It does+--    this because I couldn't think+--    of anything better for it to+--    do off the cuff. This needs+--    thought.+regexToPatQ :: String -> PatQ+regexToPatQ =+  litP . stringL+    . dropWhile (/='"')+      . show . regex++-- | Regex compilation. Temporarily uses+--  hardcoded options @extended@ and+--  @multiline@.+regex :: String -> Regex+regex = flip PCRE.compile pcreOpts . pack++-- | Regex matching.+match :: Regex -> B.ByteString -> Maybe [B.ByteString]+match rx = flip (PCRE.match rx) pcreExecOpts++-- | Adjust these to your tastes. An+--  interface to options seems to be+--  the next logical (and practical)+--  step.+pcreOpts :: [PCREOption]+pcreOpts =+  [ PCRE.extended+  , PCRE.multiline ]+  -- , dotall, caseless, utf8+  -- , newline_any, PCRE.newline_crlf ]++-- | Adjust these to your tastes. An+--  interface to options seems to be+--  the next logical (and practical)+--  step.+pcreExecOpts :: [PCREExecOption]+pcreExecOpts = []+  -- [ PCRE.exec_newline_crlf+  -- , exec_newline_any, PCRE.exec_notempty+  -- , PCRE.exec_notbol, PCRE.exec_noteol ]++pack :: String -> ByteString+pack = B.pack . fmap c2w++unpack :: ByteString -> String+unpack = fmap w2c . B.unpack++-----------------------------------------------------------------------------
+ docs/Text-Regex-PCRE-QQ.html view
@@ -0,0 +1,235 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>Text.Regex.PCRE.QQ</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>regexqq-0.1: A quasiquoter for Text.Regex.PCRE regexes.</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="modulebar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><FONT SIZE="6"+>Text.Regex.PCRE.QQ</FONT+></TD+><TD ALIGN="right"+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="infohead"+>Portability</TD+><TD CLASS="infoval"+>non-portable (GHC QuasiQuotes)</TD+></TR+><TR+><TD CLASS="infohead"+>Stability</TD+><TD CLASS="infoval"+>unstable</TD+></TR+><TR+><TD CLASS="infohead"+>Maintainer</TD+><TD CLASS="infoval"+>mjm2002@gmail.com</TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Description</TD+></TR+><TR+><TD CLASS="doc"+><P+>A quasiquoter for Text.Regex.PCRE regexes.+  This makes use of a new GHC extension known as QuasiQuotes.+  See the README for the temporary location of the docs for+  Language.Haskell.TH.Quote. See the EXAMPLES file for examples.+</P+><PRE+> ghci&gt; [$rx|([aeiou]).*(er|ing|tion)([\.,\?]*)$|] &quot;helloing.!?!?!&quot;+ Just [&quot;elloing.!?!?!&quot;,&quot;e&quot;,&quot;ing&quot;,&quot;.!?!?!&quot;]+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Synopsis</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="body"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="decl"+><A HREF="#v%3Arx"+>rx</A+> :: QuasiQuoter</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AregexToExpQ"+>regexToExpQ</A+> :: String -&gt; ExpQ</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3AregexToPatQ"+>regexToPatQ</A+> :: String -&gt; PatQ</TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="section1"+>Documentation</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3Arx"+></A+><B+>rx</B+> :: QuasiQuoter</TD+></TR+><TR+><TD CLASS="doc"+><PRE+> ghci&gt; maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+ [&quot;-&quot;,&quot;3&quot;,&quot;141592653589793&quot;]+</PRE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AregexToExpQ"+></A+><B+>regexToExpQ</B+> :: String -&gt; ExpQ</TD+></TR+><TR+><TD CLASS="doc"+>Transform a string rep+ of a regex to an ExpQ. The+ resulting ExpQ, when spliced,+ results in a function of type+ <TT+>String -&gt; Maybe [String]</TT+>,+ where the input is the String+ to match on. The result is+ Nothing on error, and Just+ a list of results on success.+ Note: I'm packing/unpacking/...+ the ByteString unnecessarily+ for convenience in testing+ out the first go at this.+ This will be dealt with in+ the future.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="decl"+><A NAME="v%3AregexToPatQ"+></A+><B+>regexToPatQ</B+> :: String -&gt; PatQ</TD+></TR+><TR+><TD CLASS="doc"+>Transform a string (presumably)+  containing a regex to a PatQ.+ NOTE: Given a regex, a pattern+    is constructed which matches+    a literal string containing+    the verbatim regex. It does+    this because I couldn't think+    of anything better for it to+    do off the cuff. This needs+    thought.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 2.1.0</TD+></TR+></TABLE+></BODY+></HTML+>
+ docs/doc-index.html view
@@ -0,0 +1,2122 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>regexqq-0.1: A quasiquoter for Text.Regex.PCRE regexes. (Index)</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>regexqq-0.1: A quasiquoter for Text.Regex.PCRE regexes.</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD COLSPAN="2" STYLE="padding-top:5px;"+><FORM onsubmit="full_search(); return false;" ACTION=""+>Search: <INPUT ID="searchbox" onkeyup="quick_search()"+> <INPUT VALUE="Search" TYPE="submit"+> <SPAN ID="searchmsg"+> </SPAN+></FORM+></TD+></TR+><TR+><TD+><TABLE ID="indexlist" CELLPADDING="0" CELLSPACING="5"+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Alone</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>alpha</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>AppE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>appE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Applied</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>appPrec</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>appsE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>AppT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>appT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ArithSeqE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>arithSeqE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ArrowT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>arrowT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>AsP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>asP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>bindQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>BindS</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>bindS</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Body</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>BodyQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Callconv</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>CaseE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>caseE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>CCall</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>cCall</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>CharL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>charL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>CharPos</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ClassD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>classD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ClassI</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ClassOpI</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry" COLSPAN="2"+>Clause</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>clause</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ClauseQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>combine</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>CompE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>compE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Con</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>CondE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>condE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ConE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>conE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ConP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>conP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ConQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ConT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>conT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Cxt</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>cxt</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>CxtQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>DataConI</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>DataD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>dataD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>DataName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>dataToExpQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>dataToPatQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>dataToQa</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Dec</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>DecQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>defaultFixity</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>DoE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>doE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>DoublePrimL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>doublePrimL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>dyn</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Exp</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ExportF</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ExpQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FieldExp</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fieldExp</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FieldExpQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FieldPat</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fieldPat</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FieldPatQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry" COLSPAN="2"+>Fixity</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FixityDirection</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FloatPrimL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>floatPrimL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ForallC</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>forallC</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ForallT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>forallT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Foreign</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ForeignD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>forImpD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fromE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FromR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fromR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fromThenE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FromThenR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fromThenR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fromThenToE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FromThenToR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fromThenToR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fromToE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FromToR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>fromToR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>FunD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>funD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry" COLSPAN="2"+>FunDep</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>funDep</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>genpat</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>global</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Guard</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>GuardedB</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>guardedB</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>GuardQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ImportF</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Infix</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>infixApp</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>InfixC</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>infixC</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>InfixE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>infixE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>InfixL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>InfixN</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>InfixP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>infixP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>InfixR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Info</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>InfoQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>InstanceD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>instanceD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>IntegerL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>integerL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>IntPrimL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>intPrimL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>IsStrict</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>isStrict</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>lam1E</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>LamE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>lamE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>LetE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>letE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>LetS</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>letS</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Lift</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>lift</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ListE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>listE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ListP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>listP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ListT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>listT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Lit</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>LitE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>litE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>LitP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>litP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry" COLSPAN="2"+>Loc</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>location</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>loc_end</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>loc_filename</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>loc_module</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>loc_package</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>loc_start</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry" COLSPAN="2"+>Match</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>MatchQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>maxPrecedence</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>mkModName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>mkName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>mkNameG_d</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>mkNameG_tc</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>mkNameG_v</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>mkNameL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>mkNameU</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>mkOccName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>mkPkgName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ModName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>modString</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry" COLSPAN="2"+>Name</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>nameBase</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NameFlavour</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NameG</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NameIs</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NameL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>nameModule</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NameQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NameS</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NameSpace</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NameU</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>nestDepth</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>newName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NewtypeD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>newtypeD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NoBindS</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>noBindS</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>noPrec</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NormalB</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>normalB</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NormalC</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>normalC</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NormalG</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>normalG</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>normalGE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>NotStrict</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>notStrict</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>OccName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>occString</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>opPrec</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>parensIf</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ParS</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>parS</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Pat</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>PatG</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>patG</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>patGE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>PatQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>PkgName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pkgString</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Ppr</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ppr</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprBody</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprCxt</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprExp</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprFields</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprFixity</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprInfixExp</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprint</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprLit</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprMaybeExp</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprParendType</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprPat</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprStrictType</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprTyApp</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>pprVarStrictType</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ppr_list</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ppr_sig</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Precedence</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>PrimTyConI</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Q</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>qLocation</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>qNewName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>qRecover</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>qReify</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>qReport</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>qRunIO</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Quasi</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry" COLSPAN="2"+>QuasiQuoter</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>1 (Type/Class)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexannot"+>2 (Data Constructor)</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>quoteExp</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>quotePat</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Range</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>RangeQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>RationalL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>rationalL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>RecC</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>recC</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>RecConE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>recConE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>recover</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>RecP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>recP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>RecUpdE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>recUpdE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>regexToExpQ</TD+><TD CLASS="indexlinks"+><A HREF="Text-Regex-PCRE-QQ.html#v%3AregexToExpQ"+>Text.Regex.PCRE.QQ</A+></TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>regexToPatQ</TD+><TD CLASS="indexlinks"+><A HREF="Text-Regex-PCRE-QQ.html#v%3AregexToPatQ"+>Text.Regex.PCRE.QQ</A+></TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>reify</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>rename</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>report</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>returnQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>runIO</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>runQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>rx</TD+><TD CLASS="indexlinks"+><A HREF="Text-Regex-PCRE-QQ.html#v%3Arx"+>Text.Regex.PCRE.QQ</A+></TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Safe</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>safe</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Safety</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>sectionL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>sectionR</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>sequenceQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>showName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>showName'</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>showtextl</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>SigD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>sigD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>SigE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>sigE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>SigP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>sigP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>simpleMatch</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>split</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>StdCall</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>stdCall</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Stmt</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>StmtQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Strict</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>StrictType</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>strictType</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>StrictTypeQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>stringE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>StringL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>stringL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>TcClsName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Threadsafe</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>threadsafe</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>TildeP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>tildeP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>TupE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>tupE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>tupleDataName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>TupleT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>tupleT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>tupleTypeName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>TupP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>tupP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>TyConI</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Type</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>TypeQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>TySynD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>tySynD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>TyVarI</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Uniq</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>Unsafe</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>unsafe</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>ValD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>valD</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>VarE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>varE</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>VarI</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>VarName</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>VarP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>varP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>VarStrictType</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>varStrictType</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>VarStrictTypeQ</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>VarT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>varT</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>where_clause</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>WildP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>wildP</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>WordPrimL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>wordPrimL</TD+><TD CLASS="indexlinks"+>Text.Regex.PCRE.QQ</TD+></TR+></TABLE+></TD+></TR+></TABLE+></BODY+></HTML+>
+ docs/haddock-util.js view
@@ -0,0 +1,133 @@+// Haddock JavaScript utilities+function toggle(button,id)+{+   var n = document.getElementById(id).style;+   if (n.display == "none")+   {+    button.src = "minus.gif";+    n.display = "block";+   }+   else+   {+    button.src = "plus.gif";+    n.display = "none";+   }+}+++var max_results = 75; // 50 is not enough to search for map in the base libraries+var shown_range = null;+var last_search = null;++function quick_search()+{+    perform_search(false);+}++function full_search()+{+    perform_search(true);+}+++function perform_search(full)+{+    var text = document.getElementById("searchbox").value.toLowerCase();+    if (text == last_search && !full) return;+    last_search = text;+    +    var table = document.getElementById("indexlist");+    var status = document.getElementById("searchmsg");+    var children = table.firstChild.childNodes;+    +    // first figure out the first node with the prefix+    var first = bisect(-1);+    var last = (first == -1 ? -1 : bisect(1));++    if (first == -1)+    {+        table.className = "";+        status.innerHTML = "No results found, displaying all";+    }+    else if (first == 0 && last == children.length - 1)+    {+        table.className = "";+        status.innerHTML = "";+    }+    else if (last - first >= max_results && !full)+    {+        table.className = "";+        status.innerHTML = "More than " + max_results + ", press Search to display";+    }+    else+    {+        // decide what you need to clear/show+        if (shown_range)+            setclass(shown_range[0], shown_range[1], "indexrow");+        setclass(first, last, "indexshow");+        shown_range = [first, last];+        table.className = "indexsearch";+        status.innerHTML = "";+    }++    +    function setclass(first, last, status)+    {+        for (var i = first; i <= last; i++)+        {+            children[i].className = status;+        }+    }+    +    +    // do a binary search, treating 0 as ...+    // return either -1 (no 0's found) or location of most far match+    function bisect(dir)+    {+        var first = 0, finish = children.length - 1;+        var mid, success = false;++        while (finish - first > 3)+        {+            mid = Math.floor((finish + first) / 2);++            var i = checkitem(mid);+            if (i == 0) i = dir;+            if (i == -1)+                finish = mid;+            else+                first = mid;+        }+        var a = (dir == 1 ? first : finish);+        var b = (dir == 1 ? finish : first);+        for (var i = b; i != a - dir; i -= dir)+        {+            if (checkitem(i) == 0) return i;+        }+        return -1;+    }    +    +    +    // from an index, decide what the result is+    // 0 = match, -1 is lower, 1 is higher+    function checkitem(i)+    {+        var s = getitem(i).toLowerCase().substr(0, text.length);+        if (s == text) return 0;+        else return (s > text ? -1 : 1);+    }+    +    +    // from an index, get its string+    // this abstracts over alternates+    function getitem(i)+    {+        for ( ; i >= 0; i--)+        {+            var s = children[i].firstChild.firstChild.data;+            if (s.indexOf(' ') == -1)+                return s;+        }+        return ""; // should never be reached+    }+}
+ docs/haddock.css view
@@ -0,0 +1,267 @@+/* -------- Global things --------- */++BODY { +  background-color: #ffffff;+  color: #000000;+  font-family: sans-serif;+  } ++A:link    { color: #0000e0; text-decoration: none }+A:visited { color: #0000a0; text-decoration: none }+A:hover   { background-color: #e0e0ff; text-decoration: none }++TABLE.vanilla {+  width: 100%;+  border-width: 0px;+  /* I can't seem to specify cellspacing or cellpadding properly using CSS... */+}++TABLE.vanilla2 {+  border-width: 0px;+}++/* <TT> font is a little too small in MSIE */+TT  { font-size: 100%; }+PRE { font-size: 100%; }++LI P { margin: 0pt } ++TD {+  border-width: 0px;+}++TABLE.narrow {+  border-width: 0px;+}++TD.s8  {  height: 8px;  }+TD.s15 {  height: 15px; }++SPAN.keyword { text-decoration: underline; }++/* Resize the buttom image to match the text size */+IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }++/* --------- Contents page ---------- */++DIV.node {+  padding-left: 3em;+}++DIV.cnode {+  padding-left: 1.75em;+}++SPAN.pkg {+  position: absolute;+  left: 50em;+}++/* --------- Documentation elements ---------- */++TD.children {+  padding-left: 25px;+  }++TD.synopsis {+  padding: 2px;+  background-color: #f0f0f0;+  font-family: monospace+ }++TD.decl { +  padding: 2px;+  background-color: #f0f0f0; +  font-family: monospace;+  vertical-align: top;+  }++TD.topdecl {+  padding: 2px;+  background-color: #f0f0f0;+  font-family: monospace;+  vertical-align: top;+}++TABLE.declbar {+  border-spacing: 0px;+ }++TD.declname {+  width: 100%;+ }++TD.declbut {+  padding-left: 5px;+  padding-right: 5px;+  border-left-width: 1px;+  border-left-color: #000099;+  border-left-style: solid;+  white-space: nowrap;+  font-size: small;+ }++/* +  arg is just like decl, except that wrapping is not allowed.  It is+  used for function and constructor arguments which have a text box+  to the right, where if wrapping is allowed the text box squashes up+  the declaration by wrapping it.+*/+TD.arg { +  padding: 2px;+  background-color: #f0f0f0; +  font-family: monospace;+  vertical-align: top;+  white-space: nowrap;+  }++TD.recfield { padding-left: 20px }++TD.doc  { +  padding-top: 2px;+  padding-left: 10px;+  }++TD.ndoc  { +  padding: 2px;+  }++TD.rdoc  { +  padding: 2px;+  padding-left: 10px;+  width: 100%;+  }++TD.body  { +  padding-left: 10px+  }++TD.pkg {+  width: 100%;+  padding-left: 10px+}++TABLE.indexsearch TR.indexrow {+  display: none;+}+TABLE.indexsearch TR.indexshow {+  display: table-row;+}++TD.indexentry {+  vertical-align: top;+  padding-right: 10px+  }++TD.indexannot {+  vertical-align: top;+  padding-left: 20px;+  white-space: nowrap+  }++TD.indexlinks {+  width: 100%+  }++/* ------- Section Headings ------- */++TD.section1 {+  padding-top: 15px;+  font-weight: bold;+  font-size: 150%+  }++TD.section2 {+  padding-top: 10px;+  font-weight: bold;+  font-size: 130%+  }++TD.section3 {+  padding-top: 5px;+  font-weight: bold;+  font-size: 110%+  }++TD.section4 {+  font-weight: bold;+  font-size: 100%+  }++/* -------------- The title bar at the top of the page */++TD.infohead {+  color: #ffffff;+  font-weight: bold;+  padding-right: 10px;+  text-align: left;+}++TD.infoval {+  color: #ffffff;+  padding-right: 10px;+  text-align: left;+}++TD.topbar {+  background-color: #000099;+  padding: 5px;+}++TD.title {+  color: #ffffff;+  padding-left: 10px;+  width: 100%+  }++TD.topbut {+  padding-left: 5px;+  padding-right: 5px;+  border-left-width: 1px;+  border-left-color: #ffffff;+  border-left-style: solid;+  white-space: nowrap;+  }++TD.topbut A:link {+  color: #ffffff+  }++TD.topbut A:visited {+  color: #ffff00+  }++TD.topbut A:hover {+  background-color: #6060ff;+  }++TD.topbut:hover {+  background-color: #6060ff+  }++TD.modulebar { +  background-color: #0077dd;+  padding: 5px;+  border-top-width: 1px;+  border-top-color: #ffffff;+  border-top-style: solid;+  }++/* --------- The page footer --------- */++TD.botbar {+  background-color: #000099;+  color: #ffffff;+  padding: 5px+  }+TD.botbar A:link {+  color: #ffffff;+  text-decoration: underline+  }+TD.botbar A:visited {+  color: #ffff00+  }+TD.botbar A:hover {+  background-color: #6060ff+  }+
+ docs/haskell_icon.gif view

binary file changed (absent → 911 bytes)

+ docs/index.html view
@@ -0,0 +1,131 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">+<!--Rendered using the Haskell Html Library v0.2-->+<HTML+><HEAD+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"+><TITLE+>regexqq-0.1: A quasiquoter for Text.Regex.PCRE regexes.</TITLE+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"+></SCRIPT+></HEAD+><BODY+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD CLASS="topbar"+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"+><TR+><TD+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "+></TD+><TD CLASS="title"+>regexqq-0.1: A quasiquoter for Text.Regex.PCRE regexes.</TD+><TD CLASS="topbut"+><A HREF="index.html"+>Contents</A+></TD+><TD CLASS="topbut"+><A HREF="doc-index.html"+>Index</A+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="section1"+>regexqq-0.1: A quasiquoter for Text.Regex.PCRE regexes.</TD+></TR+><TR+><TD CLASS="doc"+><PRE+> ghci&gt; [$rx|([aeiou]).*(er|ing|tion)([\.,\?]*)$|] &quot;helloing.!?!?!&quot;+ Just [&quot;elloing.!?!?!&quot;,&quot;e&quot;,&quot;ing&quot;,&quot;.!?!?!&quot;]++ ghci&gt; tail `fmap` [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+ Just [&quot;-&quot;,&quot;3&quot;,&quot;141592653589793&quot;]++ ghci&gt; maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+ [&quot;-&quot;,&quot;3&quot;,&quot;141592653589793&quot;]+</PRE+></TD+></TR+><TR+><TD CLASS="section1"+>Modules</TD+></TR+><TR+><TD+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"+><TR+><TD STYLE="width: 50em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"+>Text</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"+><TR+><TD STYLE="width: 48em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"+>Regex</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"+><TR+><TD STYLE="width: 46em"+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"+>PCRE</TD+><TD+></TD+><TD+></TD+></TR+><TR+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"+><TR+><TD STYLE="padding-left: 1.25em;width: 44em"+><A HREF="Text-Regex-PCRE-QQ.html"+>Text.Regex.PCRE.QQ</A+></TD+><TD+></TD+><TD+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+></TABLE+></TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="botbar"+>Produced by <A HREF="http://www.haskell.org/haddock/"+>Haddock</A+> version 2.1.0</TD+></TR+></TABLE+></BODY+></HTML+>
+ docs/minus.gif view

binary file changed (absent → 56 bytes)

+ docs/plus.gif view

binary file changed (absent → 59 bytes)

+ docs/regexqq.haddock view

binary file changed (absent → 14636 bytes)

+ regexqq.cabal view
@@ -0,0 +1,28 @@+name:               regexqq+version:            0.1+cabal-version:      >= 1.2+build-type:         Simple+license:            BSD3+license-file:       LICENSE+category:           Text+author:             Matt Morrow+copyright:          Matt Morrow+maintainer:         Matt Morrow <morrow@jypsis.com>+stability:          unstable+synopsis:           A quasiquoter for PCRE regexes.+description:        > [$rx|([aeiou]).*(er|ing|tion)([\.,!\?]*)$|] "helloing.!?!?!"+                    > Just ["elloing.!?!?!","e","ing",".!?!?!"]+                    >+                    > ghci> tail `fmap` [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+                    > Just ["-","3","141592653589793"]+                    >+                    > ghci> maybe [] tail $ [$rx|^([+-])?([0-9]+)\.([0-9]+)|] (show $ negate pi)+                    > ["-","3","141592653589793"]++library+  build-depends:    base, bytestring, template-haskell >= 2.2, pcre-light+  extensions:       TemplateHaskell+  ghc-options:      -O2 -fglasgow-exts+  hs-source-dirs:   .+  exposed-modules:  Text.Regex.PCRE.QQ+