Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > d124509af43f859ea9fff074ae079c9c > files > 56

ghc-cmdargs-devel-0.7-2.fc14.x86_64.rpm

<!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
>System.Console.CmdArgs.Explicit</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_System-Console-CmdArgs-Explicit.html")};</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"
>cmdargs-0.7: Command line argument processing</TD
><TD CLASS="topbut"
><A HREF="src/System-Console-CmdArgs-Explicit.html"
>Source code</A
></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"
>System.Console.CmdArgs.Explicit</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>Running command lines
</A
></DT
><DT
><A HREF="#2"
>Constructing command lines
</A
></DT
><DT
><A HREF="#3"
>Displaying help
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
>This module constructs command lines. You may either use the helper functions
    (<TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AflagNone"
>flagNone</A
></TT
>, <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AflagOpt"
>flagOpt</A
></TT
>, <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3Amode"
>mode</A
></TT
> etc.) or construct the type directly. These
    types are intended to give all the necessary power to the person constructing
    a command line parser.
</P
><P
>For people constructing simpler command line parsers, the module
    <A HREF="System-Console-CmdArgs-Implicit.html"
>System.Console.CmdArgs.Implicit</A
> may be more appropriate.
</P
><P
>As an example of a parser:
</P
><PRE
> arguments :: Mode [(String,String)]
 arguments = mode &quot;explicit&quot; [] &quot;Explicit sample program&quot; (flagArg (upd &quot;file&quot;) &quot;FILE&quot;)
     [flagOpt &quot;world&quot; [&quot;hello&quot;,&quot;h&quot;] (upd &quot;world&quot;) &quot;WHO&quot; &quot;World argument&quot;
     ,flagReq [&quot;greeting&quot;,&quot;g&quot;] (upd &quot;greeting&quot;) &quot;MSG&quot; &quot;Greeting to give&quot;
     ,flagHelpSimple ((&quot;help&quot;,&quot;&quot;):)]
     where upd msg x v = Right $ (msg,x):v
</PRE
><P
>And this can be invoked by:
</P
><PRE
> main = do
     x &lt;- processArgs arguments
     if (&quot;help&quot;,&quot;&quot;) `elem` xs then
         print $ helpText def arguments
      else
         print x
</PRE
><P
><EM
>Groups</EM
>: The <TT
><A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
></TT
> structure allows flags/modes to be grouped for the purpose of
    displaying help. When processing command lines, the group structure is ignored.
</P
><P
><EM
>Modes</EM
>: The Explicit module allows multiple mode programs by placing additional modes
    in <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AmodeGroupModes"
>modeGroupModes</A
></TT
>. Every mode is allowed sub-modes, and thus multiple levels of mode
    may be created. Given a mode <TT
>x</TT
> with sub-modes <TT
>xs</TT
>, if the first argument corresponds
    to the name of a sub-mode, then that sub-mode will be applied. If not, then the arguments
    will be processed by mode <TT
>x</TT
>. Consequently, if you wish to force the user to explicitly
    enter a mode, simply give sub-modes, and leave <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AmodeArgs"
>modeArgs</A
></TT
> as <TT
>Nothing</TT
>. Alternatively, if
    you want one sub-mode to be selected by default, place all it's flags both in the sub-mode
    and the outer mode.
</P
></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%3Aprocess"
>process</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AprocessValue"
>processValue</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AprocessArgs"
>processArgs</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AName"
>Name</A
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AHelp"
>Help</A
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AFlagHelp"
>FlagHelp</A
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AparseBool"
>parseBool</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AGroup"
>Group</A
> a = <A HREF="#v%3AGroup"
>Group</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgroupUnnamed"
>groupUnnamed</A
> :: [a]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgroupHidden"
>groupHidden</A
> :: [a]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AgroupNamed"
>groupNamed</A
> :: [(<A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
>, [a])]</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromGroup"
>fromGroup</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> a -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoGroup"
>toGroup</A
> ::  [a] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AMode"
>Mode</A
> a = <A HREF="#v%3AMode"
>Mode</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodeGroupModes"
>modeGroupModes</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodeNames"
>modeNames</A
> :: [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodeValue"
>modeValue</A
> :: a</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodeCheck"
>modeCheck</A
> :: a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> a</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodeReform"
>modeReform</A
> :: a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodeHelp"
>modeHelp</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodeHelpSuffix"
>modeHelpSuffix</A
> :: [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodeArgs"
>modeArgs</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AArg"
>Arg</A
> a)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AmodeGroupFlags"
>modeGroupFlags</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a)</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmodeModes"
>modeModes</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmodeFlags"
>modeFlags</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AFlagInfo"
>FlagInfo</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AFlagReq"
>FlagReq</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AFlagOpt"
>FlagOpt</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AFlagOptRare"
>FlagOptRare</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AFlagNone"
>FlagNone</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromFlagOpt"
>fromFlagOpt</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagInfo"
>FlagInfo</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AUpdate"
>Update</A
> a = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AFlag"
>Flag</A
> a = <A HREF="#v%3AFlag"
>Flag</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AflagNames"
>flagNames</A
> :: [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AflagInfo"
>flagInfo</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagInfo"
>FlagInfo</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AflagValue"
>flagValue</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AflagType"
>flagType</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AflagHelp"
>flagHelp</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AArg"
>Arg</A
> a = <A HREF="#v%3AArg"
>Arg</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AargValue"
>argValue</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AargType"
>argType</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcheckMode"
>checkMode</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ARemap"
>Remap</A
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3Aremap"
>remap</A
> ::  (a -&gt; b) -&gt; (b -&gt; (a, a -&gt; b)) -&gt; m a -&gt; m b</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aremap2"
>remap2</A
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3ARemap"
>Remap</A
> m =&gt; (a -&gt; b) -&gt; (b -&gt; a) -&gt; m a -&gt; m b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmodeEmpty"
>modeEmpty</A
> ::  a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amode"
>mode</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
> -&gt; a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AArg"
>Arg</A
> a -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amodes"
>modes</A
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflagNone"
>flagNone</A
> ::  [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>] -&gt; (a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflagOpt"
>flagOpt</A
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflagReq"
>flagReq</A
> ::  [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflagArg"
>flagArg</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AArg"
>Arg</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflagBool"
>flagBool</A
> ::  [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>] -&gt; (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> -&gt; a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflagHelpSimple"
>flagHelpSimple</A
> ::  (a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflagHelpFormat"
>flagHelpFormat</A
> ::  (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
> -&gt; <A HREF="System-Console-CmdArgs-Text.html#t%3ATextFormat"
>TextFormat</A
> -&gt; a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflagVersion"
>flagVersion</A
> ::  (a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflagsVerbosity"
>flagsVerbosity</A
> ::  (<A HREF="System-Console-CmdArgs-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; a -&gt; a) -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHelpFormat"
>HelpFormat</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHelpFormatDefault"
>HelpFormatDefault</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHelpFormatOne"
>HelpFormatOne</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHelpFormatAll"
>HelpFormatAll</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhelpText"
>helpText</A
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="System-Console-CmdArgs-Text.html#t%3AText"
>Text</A
>]</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Running command lines
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:process"
><A NAME="v%3Aprocess"
></A
></A
><B
>process</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Process.html#process"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Process a list of flags (usually obtained from <TT
>getArgs</TT
>) with a mode. Returns
   <TT
>Left</TT
> and an error message if the command line fails to parse, or <TT
>Right</TT
> and
   the associated value.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:processValue"
><A NAME="v%3AprocessValue"
></A
></A
><B
>processValue</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Process.html#processValue"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Process a list of flags (usually obtained from <TT
>getArgs</TT
>) with a mode. Displays
   an error and exits with failure if the command line fails to parse, or returns
   the associated value. Implemeneted in terms of <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3Aprocess"
>process</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:processArgs"
><A NAME="v%3AprocessArgs"
></A
></A
><B
>processArgs</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Process.html#processArgs"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Process the flags obtained by <TT
>getArgs</TT
> with a mode. Displays
   an error and exits with failure if the command line fails to parse, or returns
   the associated value. Implemented in terms of <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3Aprocess"
>process</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Constructing command lines
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Name"
><A NAME="t%3AName"
></A
></A
><B
>Name</B
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#Name"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>A name, either the name of a flag (<TT
>--<EM
>foo</EM
></TT
>) or the name of a mode.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Help"
><A NAME="t%3AHelp"
></A
></A
><B
>Help</B
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#Help"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>A help message that goes with either a flag or a mode.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:FlagHelp"
><A NAME="t%3AFlagHelp"
></A
></A
><B
>FlagHelp</B
> = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#FlagHelp"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The type of a flag, i.e. <TT
>--foo=<EM
>TYPE</EM
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:parseBool"
><A NAME="v%3AparseBool"
></A
></A
><B
>parseBool</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#parseBool"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Parse a boolean, accepts as True: true yes on enabled 1. 
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Group"
><A NAME="t%3AGroup"
></A
></A
><B
>Group</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#Group"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A group of items (modes or flags). The items are treated as a list, but the
   group structure is used when displaying the help message.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Group"
><A NAME="v%3AGroup"
></A
></A
><B
>Group</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:groupUnnamed"
><A NAME="v%3AgroupUnnamed"
></A
></A
><B
>groupUnnamed</B
> :: [a]</TD
><TD CLASS="rdoc"
>Normal items.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:groupHidden"
><A NAME="v%3AgroupHidden"
></A
></A
><B
>groupHidden</B
> :: [a]</TD
><TD CLASS="rdoc"
>Items that are hidden (not displayed in the help message).
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:groupNamed"
><A NAME="v%3AgroupNamed"
></A
></A
><B
>groupNamed</B
> :: [(<A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
>, [a])]</TD
><TD CLASS="rdoc"
>Items that have been grouped, along with a description of each group.
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Group')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Group" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Monoid.html#t%3AMonoid"
>Monoid</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fromGroup"
><A NAME="v%3AfromGroup"
></A
></A
><B
>fromGroup</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> a -&gt; [a]</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#fromGroup"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Convert a group into a list.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:toGroup"
><A NAME="v%3AtoGroup"
></A
></A
><B
>toGroup</B
> ::  [a] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#toGroup"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Convert a list into a group, placing all fields in <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AgroupUnnamed"
>groupUnnamed</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Mode"
><A NAME="t%3AMode"
></A
></A
><B
>Mode</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#Mode"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A mode. Each mode has three main features:
</P
><UL
><LI
> A list of submodes (<TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AmodeGroupModes"
>modeGroupModes</A
></TT
>)
</LI
><LI
> A list of flags (<TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AmodeGroupFlags"
>modeGroupFlags</A
></TT
>)
</LI
><LI
> Optionally an unnamed argument (<TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AmodeArgs"
>modeArgs</A
></TT
>)
</LI
></UL
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Mode"
><A NAME="v%3AMode"
></A
></A
><B
>Mode</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:modeGroupModes"
><A NAME="v%3AmodeGroupModes"
></A
></A
><B
>modeGroupModes</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a)</TD
><TD CLASS="rdoc"
>The available sub-modes
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modeNames"
><A NAME="v%3AmodeNames"
></A
></A
><B
>modeNames</B
> :: [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>]</TD
><TD CLASS="rdoc"
>The names assigned to this mode (for the root mode, this name is used as the program name)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modeValue"
><A NAME="v%3AmodeValue"
></A
></A
><B
>modeValue</B
> :: a</TD
><TD CLASS="rdoc"
>Value to start with
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modeCheck"
><A NAME="v%3AmodeCheck"
></A
></A
><B
>modeCheck</B
> :: a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> a</TD
><TD CLASS="rdoc"
>Check the value reprsented by a mode is correct, after applying all flags
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modeReform"
><A NAME="v%3AmodeReform"
></A
></A
><B
>modeReform</B
> :: a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
><TD CLASS="rdoc"
>Given a value, try to generate the input arguments.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modeHelp"
><A NAME="v%3AmodeHelp"
></A
></A
><B
>modeHelp</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
></TD
><TD CLASS="rdoc"
>Help text
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modeHelpSuffix"
><A NAME="v%3AmodeHelpSuffix"
></A
></A
><B
>modeHelpSuffix</B
> :: [<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
><TD CLASS="rdoc"
>A longer help suffix displayed after a mode
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modeArgs"
><A NAME="v%3AmodeArgs"
></A
></A
><B
>modeArgs</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AArg"
>Arg</A
> a)</TD
><TD CLASS="rdoc"
>An unnamed argument
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:modeGroupFlags"
><A NAME="v%3AmodeGroupFlags"
></A
></A
><B
>modeGroupFlags</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AGroup"
>Group</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a)</TD
><TD CLASS="rdoc"
>Groups of flags
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Mode')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Mode" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="System-Console-CmdArgs-Explicit.html#t%3ARemap"
>Remap</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:modeModes"
><A NAME="v%3AmodeModes"
></A
></A
><B
>modeModes</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a]</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#modeModes"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Extract the modes from a <TT
><A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:modeFlags"
><A NAME="v%3AmodeFlags"
></A
></A
><B
>modeFlags</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a]</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#modeFlags"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Extract the flags from a <TT
><A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:FlagInfo"
><A NAME="t%3AFlagInfo"
></A
></A
><B
>FlagInfo</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#FlagInfo"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The <TT
><A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagInfo"
>FlagInfo</A
></TT
> type has the following meaning:
</P
><PRE
>              FlagReq     FlagOpt      FlagOptRare/FlagNone
 -xfoo        -x=foo      -x=foo       -x= -foo
 -x foo       -x=foo      -x foo       -x= foo
 -x=foo       -x=foo      -x=foo       -x=foo
 --xx foo     --xx=foo    --xx foo     --xx foo
 --xx=foo     --xx=foo    --xx=foo     --xx=foo
</PRE
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:FlagReq"
><A NAME="v%3AFlagReq"
></A
></A
><B
>FlagReq</B
></TD
><TD CLASS="rdoc"
>Required argument
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:FlagOpt"
><A NAME="v%3AFlagOpt"
></A
></A
><B
>FlagOpt</B
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>Optional argument
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:FlagOptRare"
><A NAME="v%3AFlagOptRare"
></A
></A
><B
>FlagOptRare</B
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>Optional argument that requires an = before the value
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:FlagNone"
><A NAME="v%3AFlagNone"
></A
></A
><B
>FlagNone</B
></TD
><TD CLASS="rdoc"
>No argument
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:FlagInfo')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:FlagInfo" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagInfo"
>FlagInfo</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagInfo"
>FlagInfo</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagInfo"
>FlagInfo</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fromFlagOpt"
><A NAME="v%3AfromFlagOpt"
></A
></A
><B
>fromFlagOpt</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagInfo"
>FlagInfo</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#fromFlagOpt"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Extract the value from inside a <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AFlagOpt"
>FlagOpt</A
></TT
> or <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AFlagOptRare"
>FlagOptRare</A
></TT
>, or raises an error.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Update"
><A NAME="t%3AUpdate"
></A
></A
><B
>Update</B
> a = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#Update"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>A function to take a string, and a value, and either produce an error message
   (<TT
>Left</TT
>), or a modified value (<TT
>Right</TT
>).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Flag"
><A NAME="t%3AFlag"
></A
></A
><B
>Flag</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#Flag"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A flag, consisting of a list of flag names and other information.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Flag"
><A NAME="v%3AFlag"
></A
></A
><B
>Flag</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:flagNames"
><A NAME="v%3AflagNames"
></A
></A
><B
>flagNames</B
> :: [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>]</TD
><TD CLASS="rdoc"
>The names for the flag.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:flagInfo"
><A NAME="v%3AflagInfo"
></A
></A
><B
>flagInfo</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagInfo"
>FlagInfo</A
></TD
><TD CLASS="rdoc"
>Information about a flag's arguments.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:flagValue"
><A NAME="v%3AflagValue"
></A
></A
><B
>flagValue</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a</TD
><TD CLASS="rdoc"
>The way of processing a flag.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:flagType"
><A NAME="v%3AflagType"
></A
></A
><B
>flagType</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
></TD
><TD CLASS="rdoc"
>The type of data for the flag argument, i.e. FILE/DIR/EXT
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:flagHelp"
><A NAME="v%3AflagHelp"
></A
></A
><B
>flagHelp</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
></TD
><TD CLASS="rdoc"
>The help message associated with this flag.
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Flag')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Flag" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="System-Console-CmdArgs-Explicit.html#t%3ARemap"
>Remap</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Arg"
><A NAME="t%3AArg"
></A
></A
><B
>Arg</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#Arg"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>An unnamed argument. Anything not starting with <TT
>-</TT
> is considered an argument,
   apart from <TT
>&quot;-&quot;</TT
> which is considered to be the argument <TT
>&quot;-&quot;</TT
>, and any arguments
   following <TT
>&quot;--&quot;</TT
>. For example:
</P
><PRE
> programname arg1 -j - --foo arg3 -- -arg4 --arg5=1 arg6
</PRE
><P
>Would have the arguments:
</P
><PRE
> [&quot;arg1&quot;,&quot;-&quot;,&quot;arg3&quot;,&quot;-arg4&quot;,&quot;--arg5=1&quot;,&quot;arg6&quot;]
</PRE
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Arg"
><A NAME="v%3AArg"
></A
></A
><B
>Arg</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:argValue"
><A NAME="v%3AargValue"
></A
></A
><B
>argValue</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a</TD
><TD CLASS="rdoc"
>A way of processing the argument.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:argType"
><A NAME="v%3AargType"
></A
></A
><B
>argType</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
></TD
><TD CLASS="rdoc"
>The type of data for the argument, i.e. FILE/DIR/EXT
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Arg')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Arg" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="System-Console-CmdArgs-Explicit.html#t%3ARemap"
>Remap</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AArg"
>Arg</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AArg"
>Arg</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:checkMode"
><A NAME="v%3AcheckMode"
></A
></A
><B
>checkMode</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#checkMode"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Check that a mode is well formed.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Remap"
><A NAME="t%3ARemap"
></A
></A
><B
>Remap</B
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#Remap"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:remap"
><A NAME="v%3Aremap"
></A
></A
><B
>remap</B
></TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#remap"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: a -&gt; b</TD
><TD CLASS="rdoc"
>Embed a value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; b -&gt; (a, a -&gt; b)</TD
><TD CLASS="rdoc"
>Extract the mode and give a way of re-embedding
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; m a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; m b</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Remap')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Remap" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="System-Console-CmdArgs-Explicit.html#t%3ARemap"
>Remap</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AArg"
>Arg</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="System-Console-CmdArgs-Explicit.html#t%3ARemap"
>Remap</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="System-Console-CmdArgs-Explicit.html#t%3ARemap"
>Remap</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:remap2"
><A NAME="v%3Aremap2"
></A
></A
><B
>remap2</B
> :: <A HREF="System-Console-CmdArgs-Explicit.html#t%3ARemap"
>Remap</A
> m =&gt; (a -&gt; b) -&gt; (b -&gt; a) -&gt; m a -&gt; m b</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#remap2"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:modeEmpty"
><A NAME="v%3AmodeEmpty"
></A
></A
><B
>modeEmpty</B
> ::  a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#modeEmpty"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create an empty mode specifying only <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AmodeValue"
>modeValue</A
></TT
>. All other fields will usually be populated
   using record updates.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mode"
><A NAME="v%3Amode"
></A
></A
><B
>mode</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
> -&gt; a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AArg"
>Arg</A
> a -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#mode"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create a mode with a name, an initial value, some help text, a way of processing arguments
   and a list of flags.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:modes"
><A NAME="v%3Amodes"
></A
></A
><B
>modes</B
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#modes"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create a list of modes, with a program name, an initial value, some help text and the child modes.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flagNone"
><A NAME="v%3AflagNone"
></A
></A
><B
>flagNone</B
> ::  [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>] -&gt; (a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#flagNone"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create a flag taking no argument value, with a list of flag names, an update function
   and some help text.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flagOpt"
><A NAME="v%3AflagOpt"
></A
></A
><B
>flagOpt</B
> ::  <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#flagOpt"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create a flag taking an optional argument value, with an optional value, a list of flag names,
   an update function, the type of the argument and some help text.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flagReq"
><A NAME="v%3AflagReq"
></A
></A
><B
>flagReq</B
> ::  [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>] -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#flagReq"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create a flag taking a required argument value, with a list of flag names,
   an update function, the type of the argument and some help text.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flagArg"
><A NAME="v%3AflagArg"
></A
></A
><B
>flagArg</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AUpdate"
>Update</A
> a -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlagHelp"
>FlagHelp</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AArg"
>Arg</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#flagArg"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create an argument flag, with an update function and the type of the argument.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flagBool"
><A NAME="v%3AflagBool"
></A
></A
><B
>flagBool</B
> ::  [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AName"
>Name</A
>] -&gt; (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> -&gt; a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelp"
>Help</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Type.html#flagBool"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create a boolean flag, with a list of flag names, an update function and some help text.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flagHelpSimple"
><A NAME="v%3AflagHelpSimple"
></A
></A
><B
>flagHelpSimple</B
> ::  (a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit.html#flagHelpSimple"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create a help flag triggered by <TT
>-?</TT
>/<TT
>--help</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flagHelpFormat"
><A NAME="v%3AflagHelpFormat"
></A
></A
><B
>flagHelpFormat</B
> ::  (<A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
> -&gt; <A HREF="System-Console-CmdArgs-Text.html#t%3ATextFormat"
>TextFormat</A
> -&gt; a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit.html#flagHelpFormat"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Create a help flag triggered by <TT
>-?</TT
>/<TT
>--help</TT
>. The user
   may optionally modify help by specifying the format, such as:
</P
><PRE
> --help=all          - help for all modes
 --help=html         - help in HTML format
 --help=100          - wrap the text at 100 characters
 --help=100,one      - full text wrapped at 100 characters
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flagVersion"
><A NAME="v%3AflagVersion"
></A
></A
><B
>flagVersion</B
> ::  (a -&gt; a) -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit.html#flagVersion"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create a version flag triggered by <TT
>-V</TT
>/<TT
>--version</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flagsVerbosity"
><A NAME="v%3AflagsVerbosity"
></A
></A
><B
>flagsVerbosity</B
> ::  (<A HREF="System-Console-CmdArgs-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; a -&gt; a) -&gt; [<A HREF="System-Console-CmdArgs-Explicit.html#t%3AFlag"
>Flag</A
> a]</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit.html#flagsVerbosity"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Create verbosity flags triggered by <TT
>-v</TT
>/<TT
>--verbose</TT
> and
   <TT
>-q</TT
>/<TT
>--quiet</TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Displaying help
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HelpFormat"
><A NAME="t%3AHelpFormat"
></A
></A
><B
>HelpFormat</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Help.html#HelpFormat"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Specify the format to output the help.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HelpFormatDefault"
><A NAME="v%3AHelpFormatDefault"
></A
></A
><B
>HelpFormatDefault</B
></TD
><TD CLASS="rdoc"
>Equivalent to <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AHelpFormatAll"
>HelpFormatAll</A
></TT
> if there is not too much text, otherwise <TT
><A HREF="System-Console-CmdArgs-Explicit.html#v%3AHelpFormatOne"
>HelpFormatOne</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HelpFormatOne"
><A NAME="v%3AHelpFormatOne"
></A
></A
><B
>HelpFormatOne</B
></TD
><TD CLASS="rdoc"
>Display only the first mode.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HelpFormatAll"
><A NAME="v%3AHelpFormatAll"
></A
></A
><B
>HelpFormatAll</B
></TD
><TD CLASS="rdoc"
>Display all modes.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HelpFormat')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HelpFormat" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="System-Console-CmdArgs-Default.html#t%3ADefault"
>Default</A
> <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:helpText"
><A NAME="v%3AhelpText"
></A
></A
><B
>helpText</B
> ::  <A HREF="System-Console-CmdArgs-Explicit.html#t%3AHelpFormat"
>HelpFormat</A
> -&gt; <A HREF="System-Console-CmdArgs-Explicit.html#t%3AMode"
>Mode</A
> a -&gt; [<A HREF="System-Console-CmdArgs-Text.html#t%3AText"
>Text</A
>]</TD
><TD CLASS="declbut"
><A HREF="src/System-Console-CmdArgs-Explicit-Help.html#helpText"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Generate a help message from a mode.
</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.6.1</TD
></TR
></TABLE
></BODY
></HTML
>