Cabal-1.22.1.0: doc/API/Cabal/Distribution-Simple-Program-Types.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.Program.Types</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Distribution-Simple-Program-Types.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-1.22.1.0: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>Isaac Jones 2006, Duncan Coutts 2007-2009</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Portability</th><td>portable</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Distribution.Simple.Program.Types</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Program and functions for constructing them</a></li><li><a href="#g:2">Configured program and related functions</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This provides an abstraction which deals with configuring and running
programs. A <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code> is a static notion of a known program. A
<code><a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></code> is a <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code> 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's reasonable default behavior for trying to find
"foo" in PATH, being able to override its location, etc.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Program">Program</a> = <a href="#v:Program">Program</a> {<ul class="subs"><li><a href="#v:programName">programName</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:programFindLocation">programFindLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a>)</li><li><a href="#v:programFindVersion">programFindVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</li><li><a href="#v:programPostConf">programPostConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:ProgramSearchPath">ProgramSearchPath</a> = [<a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a><ul class="subs"><li>= <a href="#v:ProgramSearchPathDir">ProgramSearchPathDir</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a></li><li>| <a href="#v:ProgramSearchPathDefault">ProgramSearchPathDefault</a></li></ul></li><li class="src short"><a href="#v:simpleProgram">simpleProgram</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ConfiguredProgram">ConfiguredProgram</a> = <a href="#v:ConfiguredProgram">ConfiguredProgram</a> {<ul class="subs"><li><a href="#v:programId">programId</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:programVersion">programVersion</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></li><li><a href="#v:programDefaultArgs">programDefaultArgs</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:programOverrideArgs">programOverrideArgs</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:programOverrideEnv">programOverrideEnv</a> :: [(<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a>, <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a>)]</li><li><a href="#v:programProperties">programProperties</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/containers-0.5.6.2/Data-Map-Lazy.html#t:Map">Map</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:programLocation">programLocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></li></ul>}</li><li class="src short"><a href="#v:programPath">programPath</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:suppressOverrideArgs">suppressOverrideArgs</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ProgArg">ProgArg</a> = <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ProgramLocation">ProgramLocation</a><ul class="subs"><li>= <a href="#v:UserSpecified">UserSpecified</a> { <ul class="subs"><li><a href="#v:locationPath">locationPath</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul> }</li><li>| <a href="#v:FoundOnSystem">FoundOnSystem</a> { <ul class="subs"><li><a href="#v:locationPath">locationPath</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a></li></ul> }</li></ul></li><li class="src short"><a href="#v:simpleConfiguredProgram">simpleConfiguredProgram</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></li></ul></div><div id="interface"><h1 id="g:1">Program and functions for constructing them</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Program" class="def">Program</a></p><div class="doc"><p>Represents a program which can be configured.</p><p>Note: rather than constructing this directly, start with <code><a href="Distribution-Simple-Program-Types.html#v:simpleProgram">simpleProgram</a></code> and
override any extra fields.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Program" class="def">Program</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:programName" class="def">programName</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>The simple name of the program, eg. ghc</p></dd><dt class="src"><a name="v:programFindLocation" class="def">programFindLocation</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPath">ProgramSearchPath</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a>)</dt><dd class="doc"><p>A function to search for the program if its location was not
specified by the user. Usually this will just be a call to
<code><a href="Distribution-Simple-Program-Find.html#v:findProgramOnSearchPath">findProgramOnSearchPath</a></code>.</p><p>It is supplied with the prevailing search path which will typically
just be used as-is, but can be extended or ignored as needed.</p></dd><dt class="src"><a name="v:programFindVersion" class="def">programFindVersion</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a>)</dt><dd class="doc"><p>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.</p></dd><dt class="src"><a name="v:programPostConf" class="def">programPostConf</a> :: <a href="Distribution-Verbosity.html#t:Verbosity">Verbosity</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:IO">IO</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></dt><dd class="doc"><p>A function to do any additional configuration after we have
located the program (and perhaps identified its version). For example
it could add args, or environment vars.</p></dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ProgramSearchPath" class="def">ProgramSearchPath</a> = [<a href="Distribution-Simple-Program-Types.html#t:ProgramSearchPathEntry">ProgramSearchPathEntry</a>]</p><div class="doc"><p>A search path to use when locating executables. This is analogous
to the unix <code>$PATH</code> or win32 <code>%PATH%</code> but with the ability to use
the system default method for finding executables (<code><a href="file:///usr/local/share/doc/ghc/html/libraries/directory-1.2.1.1/System-Directory.html#v:findExecutable">findExecutable</a></code> which
on unix is simply looking on the <code>$PATH</code> but on win32 is a bit more
complicated).</p><p>The default to use is <code>[ProgSearchPathDefault]</code> but you can add extra dirs
either before, after or instead of the default, e.g. here we add an extra
dir to search after the usual ones.</p><pre>['ProgramSearchPathDefault', 'ProgramSearchPathDir' dir]</pre></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ProgramSearchPathEntry" class="def">ProgramSearchPathEntry</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ProgramSearchPathDir" class="def">ProgramSearchPathDir</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>A specific dir</p></td></tr><tr><td class="src"><a name="v:ProgramSearchPathDefault" class="def">ProgramSearchPathDefault</a></td><td class="doc"><p>The system default</p></td></tr></table></div></div><div class="top"><p class="src"><a name="v:simpleProgram" class="def">simpleProgram</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></p><div 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></div></div><h1 id="g:2">Configured program and related functions</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ConfiguredProgram" class="def">ConfiguredProgram</a></p><div class="doc"><p>Represents a program which has been configured and is thus ready to be run.</p><p>These are usually made by configuring a <code><a href="Distribution-Simple-Program-Types.html#t:Program">Program</a></code>, but if you have to
construct one directly then start with <code><a href="Distribution-Simple-Program-Types.html#v:simpleConfiguredProgram">simpleConfiguredProgram</a></code> and
override any extra fields.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ConfiguredProgram" class="def">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:programId" class="def">programId</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>Just the name again</p></dd><dt class="src"><a name="v:programVersion" class="def">programVersion</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Version.html#t:Version">Version</a></dt><dd class="doc"><p>The version of this program, if it is known.</p></dd><dt class="src"><a name="v:programDefaultArgs" class="def">programDefaultArgs</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>Default command-line args for this program.
These flags will appear first on the command line, so they can be
overridden by subsequent flags.</p></dd><dt class="src"><a name="v:programOverrideArgs" class="def">programOverrideArgs</a> :: [<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>Override command-line args for this program.
These flags will appear last on the command line, so they override
all earlier flags.</p></dd><dt class="src"><a name="v:programOverrideEnv" class="def">programOverrideEnv</a> :: [(<a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a>, <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a>)]</dt><dd class="doc"><p>Override environment variables for this program.
These env vars will extend/override the prevailing environment of
the current to form the environment for the new process.</p></dd><dt class="src"><a name="v:programProperties" class="def">programProperties</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/containers-0.5.6.2/Data-Map-Lazy.html#t:Map">Map</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>A key-value map listing various properties of the program, useful
for feature detection. Populated during the configuration step, key
names depend on the specific program.</p></dd><dt class="src"><a name="v:programLocation" class="def">programLocation</a> :: <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></dt><dd class="doc"><p>Location of the program. eg. <code>/usr/bin/ghc-6.4</code></p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:ConfiguredProgram" class="caption collapser" onclick="toggleSection('i:ConfiguredProgram')">Instances</p><div id="section.i:ConfiguredProgram" class="show"><table><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/GHC-Generics.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/binary-0.7.2.3/Data-Binary.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc empty"> </td></tr><tr><td class="src"><span class="keyword">type</span> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:programPath" class="def">programPath</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a></p><div class="doc"><p>The full path of a configured program.</p></div></div><div class="top"><p class="src"><a name="v:suppressOverrideArgs" class="def">suppressOverrideArgs</a> :: <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></p><div class="doc"><p>Suppress any extra arguments added by the user.</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ProgArg" class="def">ProgArg</a> = <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ProgramLocation" class="def">ProgramLocation</a></p><div class="doc"><p>Where a program was found. Also tells us whether it's specified by user or
not. This includes not just the path, but the program as well.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:UserSpecified" class="def">UserSpecified</a></td><td class="doc"><p>The user gave the path to this program,
eg. --ghc-path=/usr/bin/ghc-6.6</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:locationPath" class="def">locationPath</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:FoundOnSystem" class="def">FoundOnSystem</a></td><td class="doc"><p>The program was found automatically.</p></td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:locationPath" class="def">locationPath</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:ProgramLocation" class="caption collapser" onclick="toggleSection('i:ProgramLocation')">Instances</p><div id="section.i:ProgramLocation" class="show"><table><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/GHC-Generics.html#t:Generic">Generic</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="file:///usr/local/share/doc/ghc/html/libraries/binary-0.7.2.3/Data-Binary.html#t:Binary">Binary</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></td><td class="doc empty"> </td></tr><tr><td class="src"><span class="keyword">type</span> <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/GHC-Generics.html#t:Rep">Rep</a> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:simpleConfiguredProgram" class="def">simpleConfiguredProgram</a> :: <a href="file:///usr/local/share/doc/ghc/html/libraries/base-4.8.0.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Simple-Program-Types.html#t:ProgramLocation">ProgramLocation</a> -> <a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></p><div class="doc"><p>Make a simple <code><a href="Distribution-Simple-Program-Types.html#t:ConfiguredProgram">ConfiguredProgram</a></code>.</p><pre>simpleConfiguredProgram "foo" (FoundOnSystem path)</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.0</p></div></body></html>