<!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 "configure" and ".cabal" helpers like --with-foo-args --foo-path= and extra-foo-args. </P ><P >There's also good default behavior for trying to find "foo" 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 > -> <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 > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath" >FilePath</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> <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 > -> <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 > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath" >FilePath</A > -> <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 > -> (<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 >) -> <A HREF="Distribution-Verbosity.html#t%3AVerbosity" >Verbosity</A > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath" >FilePath</A > -> <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 > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</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%3AprogramInvocation" >programInvocation</A > :: <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</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%3ArunProgramInvocation" >runProgramInvocation</A > :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity" >Verbosity</A > -> <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation" >ProgramInvocation</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation" >ProgramInvocation</A > -> <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 >] -> <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration" >ProgramConfiguration</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%3AaddKnownProgram" >addKnownProgram</A > :: <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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%3AaddKnownPrograms" >addKnownPrograms</A > :: [<A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A >] -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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%3AlookupKnownProgram" >lookupKnownProgram</A > :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> [(<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 > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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%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 >)] -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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%3AuserMaybeSpecifyPath" >userMaybeSpecifyPath</A > :: <A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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%3AuserSpecifyArgs" >userSpecifyArgs</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 >] -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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%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 >])] -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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%3AuserSpecifiedArgs" >userSpecifiedArgs</A > :: <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> [<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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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%3AupdateProgram" >updateProgram</A > :: <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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%3AconfigureProgram" >configureProgram</A > :: <A HREF="Distribution-Verbosity.html#t%3AVerbosity" >Verbosity</A > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> [(<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 >)] -> [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A >, [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >])] -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Version.html#t%3AVersionRange" >VersionRange</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration" >ProgramConfiguration</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration" >ProgramConfiguration</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Verbosity.html#t%3AVerbosity" >Verbosity</A > -> <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 > -> <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 > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath" >FilePath</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> <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 > -> <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 "foo" { 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 > -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AFilePath" >FilePath</A > -> <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" >-> <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" >function to select version number from program output </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="Distribution-Verbosity.html#t%3AVerbosity" >Verbosity</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <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" >-> <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 > -> <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" >-> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A ></TD ><TD CLASS="rdoc" >The program to run </TD ></TR ><TR ><TD CLASS="arg" >-> [<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" >-> <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" >-> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A ></TD ><TD CLASS="rdoc" >The program to run </TD ></TR ><TR ><TD CLASS="arg" >-> [<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" >-> <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 > -> [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A >] -> <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 > -> [<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation" >ProgramInvocation</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgramInvocation" >ProgramInvocation</A > -> <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 >] -> <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration" >ProgramConfiguration</A > -> <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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 >] -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> [(<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" >-> <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" >-> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <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 >)] -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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" >-> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >]</TD ><TD CLASS="rdoc" >user-specified args </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <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 >])] -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> [<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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</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="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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> [(<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 >)] -> [(<A HREF="../base-4.2.0.2/Data-Char.html#t%3AString" >String</A >, [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >])] -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Version.html#t%3AVersionRange" >VersionRange</A > -> <A HREF="Distribution-Simple-Program-Db.html#t%3AProgramDb" >ProgramDb</A > -> <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" >-> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A ></TD ><TD CLASS="rdoc" >The program to run </TD ></TR ><TR ><TD CLASS="arg" >-> <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" >-> [<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" >-> <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" >-> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A ></TD ><TD CLASS="rdoc" >The program to run </TD ></TR ><TR ><TD CLASS="arg" >-> <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" >-> [<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" >-> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AConfiguredProgram" >ConfiguredProgram</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration" >ProgramConfiguration</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Simple-Program.html#t%3AProgram" >Program</A > -> <A HREF="Distribution-Simple-Program.html#t%3AProgramConfiguration" >ProgramConfiguration</A > -> [<A HREF="Distribution-Simple-Program.html#t%3AProgArg" >ProgArg</A >] -> <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 > -> <A HREF="Distribution-Verbosity.html#t%3AVerbosity" >Verbosity</A > -> <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 >