Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 040b01fd062be0d3984f68287bae0bc8 > files > 173

ghc-Cabal-devel-1.8.0.6-8.6.fc14.i686.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
>Distribution.Simple.Program</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_Distribution-Simple-Program.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"
>Cabal-1.8.0.6: A framework for packaging Haskell software</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"
>Distribution.Simple.Program</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>portable</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>cabal-devel@haskell.org</TD
></TR
></TABLE
></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"
>Program and functions for constructing them
</A
></DT
><DT
><A HREF="#2"
>Configured program and related functions
</A
></DT
><DT
><A HREF="#3"
>Program invocations
</A
></DT
><DT
><A HREF="#4"
>The collection of unconfigured and configured progams
</A
></DT
><DT
><A HREF="#5"
>The collection of configured programs we can run
</A
></DT
><DT
><A HREF="#6"
>Programs that Cabal knows about
</A
></DT
><DT
><A HREF="#7"
>deprecated
</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 provides an abstraction which deals with configuring and running
 programs. A <TT
><A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TT
> is a static notion of a known program. A
 <TT
><A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
></TT
> is a <TT
><A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TT
> that has been found on the current
 machine and is ready to be run (possibly with some user-supplied default
 args). Configuring a program involves finding its location and if necessary
 finding its version. There is also a <TT
><A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
></TT
> type which holds
 configured and not-yet configured programs. It is the parameter to lots of
 actions elsewhere in Cabal that need to look up and run programs. If we had
 a Cabal monad, the <TT
><A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
></TT
> would probably be a reader or
 state component of it. 
</P
><P
>The module also defines all the known built-in <TT
><A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TT
>s and the
 <TT
><A HREF="Distribution-Simple-Program.html#v%3AdefaultProgramConfiguration"
>defaultProgramConfiguration</A
></TT
> which contains them all.
</P
><P
>One nice thing about using it is that any program that is
 registered with Cabal will get some &quot;configure&quot; and &quot;.cabal&quot;
 helpers like --with-foo-args --foo-path= and extra-foo-args.
</P
><P
>There's also good default behavior for trying to find &quot;foo&quot; in
 PATH, being able to override its location, etc.
</P
><P
>There's also a hook for adding programs in a Setup.lhs script.  See
 hookedPrograms in Distribution.Simple.UserHooks.  This gives a
 hook user the ability to get the above flags and such so that they
 don't have to write all the PATH logic inside Setup.lhs.
</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"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AProgram"
>Program</A
>  = <A HREF="#v%3AProgram"
>Program</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogramName"
>programName</A
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogramFindLocation"
>programFindLocation</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogramFindVersion"
>programFindVersion</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Version.html#t%3AVersion"
>Version</A
>)</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogramPostConf"
>programPostConf</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>]</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsimpleProgram"
>simpleProgram</A
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfindProgramLocation"
>findProgramLocation</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfindProgramVersion"
>findProgramVersion</A
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; (<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>) -&gt; <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Version.html#t%3AVersion"
>Version</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AConfiguredProgram"
>ConfiguredProgram</A
>  = <A HREF="#v%3AConfiguredProgram"
>ConfiguredProgram</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogramId"
>programId</A
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogramVersion"
>programVersion</A
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Version.html#t%3AVersion"
>Version</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogramArgs"
>programArgs</A
> :: [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogramLocation"
>programLocation</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgramLocation"
>ProgramLocation</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AprogramPath"
>programPath</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AProgArg"
>ProgArg</A
> = <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</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%3AProgramLocation"
>ProgramLocation</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AUserSpecified"
>UserSpecified</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AlocationPath"
>locationPath</A
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AFoundOnSystem"
>FoundOnSystem</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AlocationPath"
>locationPath</A
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
></TABLE
>}</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArunProgram"
>runProgram</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetProgramOutput"
>getProgramOutput</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../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"
>data</SPAN
>  <A HREF="#t%3AProgramInvocation"
>ProgramInvocation</A
>  = <A HREF="#v%3AProgramInvocation"
>ProgramInvocation</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogInvokePath"
>progInvokePath</A
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogInvokeArgs"
>progInvokeArgs</A
> :: [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogInvokeEnv"
>progInvokeEnv</A
> :: [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>)]</TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogInvokeCwd"
>progInvokeCwd</A
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogInvokeInput"
>progInvokeInput</A
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogInvokeInputEncoding"
>progInvokeInputEncoding</A
> :: <A HREF="Distribution-Simple-Program-Run.html#t%3AIOEncoding"
>IOEncoding</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AprogInvokeOutputEncoding"
>progInvokeOutputEncoding</A
> :: <A HREF="Distribution-Simple-Program-Run.html#t%3AIOEncoding"
>IOEncoding</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyProgramInvocation"
>emptyProgramInvocation</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsimpleProgramInvocation"
>simpleProgramInvocation</A
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AprogramInvocation"
>programInvocation</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArunProgramInvocation"
>runProgramInvocation</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetProgramInvocationOutput"
>getProgramInvocationOutput</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../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%3AbuiltinPrograms"
>builtinPrograms</A
> :: [<A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AProgramConfiguration"
>ProgramConfiguration</A
> = <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptyProgramConfiguration"
>emptyProgramConfiguration</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdefaultProgramConfiguration"
>defaultProgramConfiguration</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArestoreProgramConfiguration"
>restoreProgramConfiguration</A
> :: [<A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
>] -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AaddKnownProgram"
>addKnownProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AaddKnownPrograms"
>addKnownPrograms</A
> :: [<A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
>] -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupKnownProgram"
>lookupKnownProgram</A
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AknownPrograms"
>knownPrograms</A
> :: <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; [(<A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
>, <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
>)]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AuserSpecifyPath"
>userSpecifyPath</A
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AuserSpecifyPaths"
>userSpecifyPaths</A
> :: [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>)] -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AuserMaybeSpecifyPath"
>userMaybeSpecifyPath</A
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AuserSpecifyArgs"
>userSpecifyArgs</A
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AuserSpecifyArgss"
>userSpecifyArgss</A
> :: [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>])] -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AuserSpecifiedArgs"
>userSpecifiedArgs</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlookupProgram"
>lookupProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AupdateProgram"
>updateProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AconfigureProgram"
>configureProgram</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AconfigureAllKnownPrograms"
>configureAllKnownPrograms</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreconfigurePrograms"
>reconfigurePrograms</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>)] -&gt; [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>])] -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArequireProgram"
>requireProgram</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
>, <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArequireProgramVersion"
>requireProgramVersion</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Version.html#t%3AVersionRange"
>VersionRange</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
>, <A HREF="Distribution-Version.html#t%3AVersion"
>Version</A
>, <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArunDbProgram"
>runDbProgram</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetDbProgramOutput"
>getDbProgramOutput</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../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%3AghcProgram"
>ghcProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AghcPkgProgram"
>ghcPkgProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlhcProgram"
>lhcProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlhcPkgProgram"
>lhcPkgProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnhcProgram"
>nhcProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhmakeProgram"
>hmakeProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AjhcProgram"
>jhcProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhugsProgram"
>hugsProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AffihugsProgram"
>ffihugsProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgccProgram"
>gccProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AranlibProgram"
>ranlibProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AarProgram"
>arProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AstripProgram"
>stripProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhappyProgram"
>happyProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AalexProgram"
>alexProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ahsc2hsProgram"
>hsc2hsProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ac2hsProgram"
>c2hsProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcpphsProgram"
>cpphsProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhscolourProgram"
>hscolourProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhaddockProgram"
>haddockProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgreencardProgram"
>greencardProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AldProgram"
>ldProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtarProgram"
>tarProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcppProgram"
>cppProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ApkgConfigProgram"
>pkgConfigProgram</A
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArawSystemProgram"
>rawSystemProgram</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArawSystemProgramStdout"
>rawSystemProgramStdout</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../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%3ArawSystemProgramConf"
>rawSystemProgramConf</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArawSystemProgramStdoutConf"
>rawSystemProgramStdoutConf</A
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../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%3AfindProgramOnPath"
>findProgramOnPath</A
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</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"
>Program and functions for constructing them
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Program"
><A NAME="t%3AProgram"
></A
></A
><B
>Program</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Represents a program which can be configured.
</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:Program"
><A NAME="v%3AProgram"
></A
></A
><B
>Program</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:programName"
><A NAME="v%3AprogramName"
></A
></A
><B
>programName</B
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>The simple name of the program, eg. ghc
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:programFindLocation"
><A NAME="v%3AprogramFindLocation"
></A
></A
><B
>programFindLocation</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>)</TD
><TD CLASS="rdoc"
>A function to search for the program if it's location was not
 specified by the user. Usually this will just be a
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:programFindVersion"
><A NAME="v%3AprogramFindVersion"
></A
></A
><B
>programFindVersion</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Version.html#t%3AVersion"
>Version</A
>)</TD
><TD CLASS="rdoc"
>Try to find the version of the program. For many programs this is
 not possible or is not necessary so it's ok to return Nothing.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:programPostConf"
><A NAME="v%3AprogramPostConf"
></A
></A
><B
>programPostConf</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>]</TD
><TD CLASS="rdoc"
>A function to do any additional configuration after we have
 located the program (and perhaps identified its version). It is
 allowed to return additional flags that will be passed to the
 program on every invocation.
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:simpleProgram"
><A NAME="v%3AsimpleProgram"
></A
></A
><B
>simpleProgram</B
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Make a simple named program.
</P
><P
>By default we'll just search for it in the path and not try to find the
 version name. You can override these behaviours if necessary, eg:
</P
><PRE
> simpleProgram &quot;foo&quot; { programFindLocation = ... , programFindVersion ... }
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:findProgramLocation"
><A NAME="v%3AfindProgramLocation"
></A
></A
><B
>findProgramLocation</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>Look for a program on the path.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:findProgramVersion"
><A NAME="v%3AfindProgramVersion"
></A
></A
><B
>findProgramVersion</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>version args
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>function to select version
   number from program output
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
>location
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Version.html#t%3AVersion"
>Version</A
>)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Look for a program and try to find it's version number. It can accept
 either an absolute path or the name of a program binary, in which case we
 will look for the program on the path.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Configured program and related functions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ConfiguredProgram"
><A NAME="t%3AConfiguredProgram"
></A
></A
><B
>ConfiguredProgram</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><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:ConfiguredProgram"
><A NAME="v%3AConfiguredProgram"
></A
></A
><B
>ConfiguredProgram</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:programId"
><A NAME="v%3AprogramId"
></A
></A
><B
>programId</B
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>Just the name again
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:programVersion"
><A NAME="v%3AprogramVersion"
></A
></A
><B
>programVersion</B
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Version.html#t%3AVersion"
>Version</A
></TD
><TD CLASS="rdoc"
>The version of this program, if it is known.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:programArgs"
><A NAME="v%3AprogramArgs"
></A
></A
><B
>programArgs</B
> :: [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
><TD CLASS="rdoc"
>Default command-line args for this program.
 These flags will appear first on the command line, so they can be
 overridden by subsequent flags.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:programLocation"
><A NAME="v%3AprogramLocation"
></A
></A
><B
>programLocation</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgramLocation"
>ProgramLocation</A
></TD
><TD CLASS="rdoc"
>Location of the program. eg. <TT
>/usr/bin/ghc-6.4</TT
>
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ConfiguredProgram')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ConfiguredProgram" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:programPath"
><A NAME="v%3AprogramPath"
></A
></A
><B
>programPath</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
></TR
><TR
><TD CLASS="doc"
>The full path of a configured program.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:ProgArg"
><A NAME="t%3AProgArg"
></A
></A
><B
>ProgArg</B
> = <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ProgramLocation"
><A NAME="t%3AProgramLocation"
></A
></A
><B
>ProgramLocation</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Where a program was found. Also tells us whether it's specifed by user or
 not.  This includes not just the path, but the program as well.
</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:UserSpecified"
><A NAME="v%3AUserSpecified"
></A
></A
><B
>UserSpecified</B
></TD
><TD CLASS="rdoc"
>The user gave the path to this program,
 eg. --ghc-path=/usr/bin/ghc-6.6
</TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:locationPath"
><A NAME="v%3AlocationPath"
></A
></A
><B
>locationPath</B
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:FoundOnSystem"
><A NAME="v%3AFoundOnSystem"
></A
></A
><B
>FoundOnSystem</B
></TD
><TD CLASS="rdoc"
>The location of the program, as located by searching PATH.
</TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:locationPath"
><A NAME="v%3AlocationPath"
></A
></A
><B
>locationPath</B
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ProgramLocation')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ProgramLocation" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Distribution-Simple-Program.html#t%3AProgramLocation"
>ProgramLocation</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="Distribution-Simple-Program.html#t%3AProgramLocation"
>ProgramLocation</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Distribution-Simple-Program.html#t%3AProgramLocation"
>ProgramLocation</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:runProgram"
><A NAME="v%3ArunProgram"
></A
></A
><B
>runProgram</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
></TD
><TD CLASS="rdoc"
>Verbosity
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
></TD
><TD CLASS="rdoc"
>The program to run
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>]</TD
><TD CLASS="rdoc"
>Any <EM
>extra</EM
> arguments to add
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Runs the given configured program.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getProgramOutput"
><A NAME="v%3AgetProgramOutput"
></A
></A
><B
>getProgramOutput</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
></TD
><TD CLASS="rdoc"
>Verbosity
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
></TD
><TD CLASS="rdoc"
>The program to run
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>]</TD
><TD CLASS="rdoc"
>Any <EM
>extra</EM
> arguments to add
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Runs the given configured program and gets the output.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Program invocations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:ProgramInvocation"
><A NAME="t%3AProgramInvocation"
></A
></A
><B
>ProgramInvocation</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Represents a specific invocation of a specific program.
</P
><P
>This is used as an intermediate type between deciding how to call a program
 and actually doing it. This provides the opportunity to the caller to
 adjust how the program will be called. These invocations can either be run
 directly or turned into shell or batch scripts.
</P
></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:ProgramInvocation"
><A NAME="v%3AProgramInvocation"
></A
></A
><B
>ProgramInvocation</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:progInvokePath"
><A NAME="v%3AprogInvokePath"
></A
></A
><B
>progInvokePath</B
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:progInvokeArgs"
><A NAME="v%3AprogInvokeArgs"
></A
></A
><B
>progInvokeArgs</B
> :: [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:progInvokeEnv"
><A NAME="v%3AprogInvokeEnv"
></A
></A
><B
>progInvokeEnv</B
> :: [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>)]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:progInvokeCwd"
><A NAME="v%3AprogInvokeCwd"
></A
></A
><B
>progInvokeCwd</B
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:progInvokeInput"
><A NAME="v%3AprogInvokeInput"
></A
></A
><B
>progInvokeInput</B
> :: <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:progInvokeInputEncoding"
><A NAME="v%3AprogInvokeInputEncoding"
></A
></A
><B
>progInvokeInputEncoding</B
> :: <A HREF="Distribution-Simple-Program-Run.html#t%3AIOEncoding"
>IOEncoding</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:progInvokeOutputEncoding"
><A NAME="v%3AprogInvokeOutputEncoding"
></A
></A
><B
>progInvokeOutputEncoding</B
> :: <A HREF="Distribution-Simple-Program-Run.html#t%3AIOEncoding"
>IOEncoding</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyProgramInvocation"
><A NAME="v%3AemptyProgramInvocation"
></A
></A
><B
>emptyProgramInvocation</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:simpleProgramInvocation"
><A NAME="v%3AsimpleProgramInvocation"
></A
></A
><B
>simpleProgramInvocation</B
> :: <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:programInvocation"
><A NAME="v%3AprogramInvocation"
></A
></A
><B
>programInvocation</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>] -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:runProgramInvocation"
><A NAME="v%3ArunProgramInvocation"
></A
></A
><B
>runProgramInvocation</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getProgramInvocationOutput"
><A NAME="v%3AgetProgramInvocationOutput"
></A
></A
><B
>getProgramInvocationOutput</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation"
>ProgramInvocation</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>The collection of unconfigured and configured progams
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:builtinPrograms"
><A NAME="v%3AbuiltinPrograms"
></A
></A
><B
>builtinPrograms</B
> :: [<A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>The default list of programs.
 These programs are typically used internally to Cabal.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>The collection of configured programs we can run
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:ProgramConfiguration"
><A NAME="t%3AProgramConfiguration"
></A
></A
><B
>ProgramConfiguration</B
> = <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:emptyProgramConfiguration"
><A NAME="v%3AemptyProgramConfiguration"
></A
></A
><B
>emptyProgramConfiguration</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:defaultProgramConfiguration"
><A NAME="v%3AdefaultProgramConfiguration"
></A
></A
><B
>defaultProgramConfiguration</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:restoreProgramConfiguration"
><A NAME="v%3ArestoreProgramConfiguration"
></A
></A
><B
>restoreProgramConfiguration</B
> :: [<A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
>] -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:addKnownProgram"
><A NAME="v%3AaddKnownProgram"
></A
></A
><B
>addKnownProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="doc"
>Add a known program that we may configure later
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:addKnownPrograms"
><A NAME="v%3AaddKnownPrograms"
></A
></A
><B
>addKnownPrograms</B
> :: [<A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
>] -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupKnownProgram"
><A NAME="v%3AlookupKnownProgram"
></A
></A
><B
>lookupKnownProgram</B
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:knownPrograms"
><A NAME="v%3AknownPrograms"
></A
></A
><B
>knownPrograms</B
> :: <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; [(<A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
>, <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
>)]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:userSpecifyPath"
><A NAME="v%3AuserSpecifyPath"
></A
></A
><B
>userSpecifyPath</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>Program name
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
></TD
><TD CLASS="rdoc"
>user-specified path to the program
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>User-specify this path.  Basically override any path information
 for this program in the configuration. If it's not a known
 program ignore it.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:userSpecifyPaths"
><A NAME="v%3AuserSpecifyPaths"
></A
></A
><B
>userSpecifyPaths</B
> :: [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>)] -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="doc"
>Like <TT
><A HREF="Distribution-Simple-Program.html#v%3AuserSpecifyPath"
>userSpecifyPath</A
></TT
> but for a list of progs and their paths.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:userMaybeSpecifyPath"
><A NAME="v%3AuserMaybeSpecifyPath"
></A
></A
><B
>userMaybeSpecifyPath</B
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:userSpecifyArgs"
><A NAME="v%3AuserSpecifyArgs"
></A
></A
><B
>userSpecifyArgs</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>Program name
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>]</TD
><TD CLASS="rdoc"
>user-specified args
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>User-specify the arguments for this program.  Basically override
 any args information for this program in the configuration. If it's
 not a known program, ignore it..
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:userSpecifyArgss"
><A NAME="v%3AuserSpecifyArgss"
></A
></A
><B
>userSpecifyArgss</B
> :: [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>])] -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="doc"
>Like <TT
><A HREF="Distribution-Simple-Program.html#v%3AuserSpecifyPath"
>userSpecifyPath</A
></TT
> but for a list of progs and their args.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:userSpecifiedArgs"
><A NAME="v%3AuserSpecifiedArgs"
></A
></A
><B
>userSpecifiedArgs</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Get any extra args that have been previously specified for a program.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookupProgram"
><A NAME="v%3AlookupProgram"
></A
></A
><B
>lookupProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
></TD
></TR
><TR
><TD CLASS="doc"
>Try to find a configured program
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:updateProgram"
><A NAME="v%3AupdateProgram"
></A
></A
><B
>updateProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="doc"
>Update a configured program in the database.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:configureProgram"
><A NAME="v%3AconfigureProgram"
></A
></A
><B
>configureProgram</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Try to configure a specific program. If the program is already included in
 the colleciton of unconfigured programs then we use any user-supplied
 location and arguments. If the program gets configured sucessfully it gets
 added to the configured collection.
</P
><P
>Note that it is not a failure if the program cannot be configured. It's only
 a failure if the user supplied a location and the program could not be found
 at that location.
</P
><P
>The reason for it not being a failure at this stage is that we don't know up
 front all the programs we will need, so we try to configure them all.
 To verify that a program was actually sucessfully configured use
 <TT
><A HREF="Distribution-Simple-Program.html#v%3ArequireProgram"
>requireProgram</A
></TT
>.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:configureAllKnownPrograms"
><A NAME="v%3AconfigureAllKnownPrograms"
></A
></A
><B
>configureAllKnownPrograms</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="doc"
>Try to configure all the known programs that have not yet been configured.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:reconfigurePrograms"
><A NAME="v%3AreconfigurePrograms"
></A
></A
><B
>reconfigurePrograms</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>)] -&gt; [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>])] -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
></TR
><TR
><TD CLASS="doc"
>reconfigure a bunch of programs given new user-specified args. It takes
 the same inputs as <TT
><A HREF="Distribution-Simple-Program.html#v%3AuserSpecifyPath"
>userSpecifyPath</A
></TT
> and <TT
><A HREF="Distribution-Simple-Program.html#v%3AuserSpecifyArgs"
>userSpecifyArgs</A
></TT
> and for all progs
 with a new path it calls <TT
><A HREF="Distribution-Simple-Program.html#v%3AconfigureProgram"
>configureProgram</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:requireProgram"
><A NAME="v%3ArequireProgram"
></A
></A
><B
>requireProgram</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
>, <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
>)</TD
></TR
><TR
><TD CLASS="doc"
><P
>Check that a program is configured and available to be run.
</P
><P
>It raises an exception if the program could not be configured, otherwise
 it returns the configured program.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:requireProgramVersion"
><A NAME="v%3ArequireProgramVersion"
></A
></A
><B
>requireProgramVersion</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Version.html#t%3AVersionRange"
>VersionRange</A
> -&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
>, <A HREF="Distribution-Version.html#t%3AVersion"
>Version</A
>, <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
>)</TD
></TR
><TR
><TD CLASS="doc"
><P
>Check that a program is configured and available to be run.
</P
><P
>Additionally check that the version of the program number is suitable and
 return it. For example you could require AnyVersion or
 <TT
>orLaterVersion (<TT
><A HREF="Distribution-Version.html#t%3AVersion"
>Version</A
></TT
> [1,0] [])</TT
>
</P
><P
>It raises an exception if the program could not be configured or the version
 is unsuitable, otherwise it returns the configured program and its version
 number.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:runDbProgram"
><A NAME="v%3ArunDbProgram"
></A
></A
><B
>runDbProgram</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
></TD
><TD CLASS="rdoc"
>verbosity
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
><TD CLASS="rdoc"
>The program to run
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
><TD CLASS="rdoc"
>look up the program here
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>]</TD
><TD CLASS="rdoc"
>Any <EM
>extra</EM
> arguments to add
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Looks up the given program in the program database and runs it.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getDbProgramOutput"
><A NAME="v%3AgetDbProgramOutput"
></A
></A
><B
>getDbProgramOutput</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
></TD
><TD CLASS="rdoc"
>verbosity
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
><TD CLASS="rdoc"
>The program to run
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb"
>ProgramDb</A
></TD
><TD CLASS="rdoc"
>look up the program here
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>]</TD
><TD CLASS="rdoc"
>Any <EM
>extra</EM
> arguments to add
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Looks up the given program in the program database and runs it.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="6"
><A NAME="6"
>Programs that Cabal knows about
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ghcProgram"
><A NAME="v%3AghcProgram"
></A
></A
><B
>ghcProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ghcPkgProgram"
><A NAME="v%3AghcPkgProgram"
></A
></A
><B
>ghcPkgProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lhcProgram"
><A NAME="v%3AlhcProgram"
></A
></A
><B
>lhcProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lhcPkgProgram"
><A NAME="v%3AlhcPkgProgram"
></A
></A
><B
>lhcPkgProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:nhcProgram"
><A NAME="v%3AnhcProgram"
></A
></A
><B
>nhcProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hmakeProgram"
><A NAME="v%3AhmakeProgram"
></A
></A
><B
>hmakeProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:jhcProgram"
><A NAME="v%3AjhcProgram"
></A
></A
><B
>jhcProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hugsProgram"
><A NAME="v%3AhugsProgram"
></A
></A
><B
>hugsProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ffihugsProgram"
><A NAME="v%3AffihugsProgram"
></A
></A
><B
>ffihugsProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:gccProgram"
><A NAME="v%3AgccProgram"
></A
></A
><B
>gccProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ranlibProgram"
><A NAME="v%3AranlibProgram"
></A
></A
><B
>ranlibProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:arProgram"
><A NAME="v%3AarProgram"
></A
></A
><B
>arProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:stripProgram"
><A NAME="v%3AstripProgram"
></A
></A
><B
>stripProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:happyProgram"
><A NAME="v%3AhappyProgram"
></A
></A
><B
>happyProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:alexProgram"
><A NAME="v%3AalexProgram"
></A
></A
><B
>alexProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hsc2hsProgram"
><A NAME="v%3Ahsc2hsProgram"
></A
></A
><B
>hsc2hsProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:c2hsProgram"
><A NAME="v%3Ac2hsProgram"
></A
></A
><B
>c2hsProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:cpphsProgram"
><A NAME="v%3AcpphsProgram"
></A
></A
><B
>cpphsProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hscolourProgram"
><A NAME="v%3AhscolourProgram"
></A
></A
><B
>hscolourProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:haddockProgram"
><A NAME="v%3AhaddockProgram"
></A
></A
><B
>haddockProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:greencardProgram"
><A NAME="v%3AgreencardProgram"
></A
></A
><B
>greencardProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ldProgram"
><A NAME="v%3AldProgram"
></A
></A
><B
>ldProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tarProgram"
><A NAME="v%3AtarProgram"
></A
></A
><B
>tarProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:cppProgram"
><A NAME="v%3AcppProgram"
></A
></A
><B
>cppProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pkgConfigProgram"
><A NAME="v%3ApkgConfigProgram"
></A
></A
><B
>pkgConfigProgram</B
> :: <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="7"
><A NAME="7"
>deprecated
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:rawSystemProgram"
><A NAME="v%3ArawSystemProgram"
></A
></A
><B
>rawSystemProgram</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:rawSystemProgramStdout"
><A NAME="v%3ArawSystemProgramStdout"
></A
></A
><B
>rawSystemProgramStdout</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram"
>ConfiguredProgram</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:rawSystemProgramConf"
><A NAME="v%3ArawSystemProgramConf"
></A
></A
><B
>rawSystemProgramConf</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:rawSystemProgramStdoutConf"
><A NAME="v%3ArawSystemProgramStdoutConf"
></A
></A
><B
>rawSystemProgramStdoutConf</B
> :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgram"
>Program</A
> -&gt; <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration"
>ProgramConfiguration</A
> -&gt; [<A HREF="Distribution-Simple-Program.html#t%3AProgArg"
>ProgArg</A
>] -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:findProgramOnPath"
><A NAME="v%3AfindProgramOnPath"
></A
></A
><B
>findProgramOnPath</B
> :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Distribution-Verbosity.html#t%3AVerbosity"
>Verbosity</A
> -&gt; <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO"
>IO</A
> (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath"
>FilePath</A
>)</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
>