<!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.ParseUtils</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-ParseUtils.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.14.0: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Distribution.ParseUtils</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Utilities for parsing <code>PackageDescription</code> and <code>InstalledPackageInfo</code>. </p><p>The <code>.cabal</code> file format is not trivial, especially with the introduction of configurations and the section syntax that goes with that. This module has a bunch of parsing functions that is used by the <code>.cabal</code> parser and a couple others. It has the parsing framework code and also little parsers for many of the formats we get in various <code>.cabal</code> file fields, like module names, comma separated lists 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">type</span> <a href="#t:LineNo">LineNo</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:PError">PError</a> <ul class="subs"><li>= <a href="#v:AmbigousParse">AmbigousParse</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> </li><li>| <a href="#v:NoParse">NoParse</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> </li><li>| <a href="#v:TabsError">TabsError</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> </li><li>| <a href="#v:FromString">FromString</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a>) </li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:PWarning">PWarning</a> <ul class="subs"><li>= <a href="#v:PWarning">PWarning</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> </li><li>| <a href="#v:UTFWarning">UTFWarning</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> </li></ul></li><li class="src short"><a href="#v:locatedErrorMsg">locatedErrorMsg</a> :: <a href="Distribution-ParseUtils.html#t:PError">PError</a> -> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a>, <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>)</li><li class="src short"><a href="#v:syntaxError">syntaxError</a> :: <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</li><li class="src short"><a href="#v:warning">warning</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> ()</li><li class="src short"><a href="#v:runP">runP</a> :: <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</li><li class="src short"><a href="#v:runE">runE</a> :: <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:ParseResult">ParseResult</a> a<ul class="subs"><li>= <a href="#v:ParseFailed">ParseFailed</a> <a href="Distribution-ParseUtils.html#t:PError">PError</a> </li><li>| <a href="#v:ParseOk">ParseOk</a> [<a href="Distribution-ParseUtils.html#t:PWarning">PWarning</a>] a </li></ul></li><li class="src short"><a href="#v:catchParseError">catchParseError</a> :: <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a -> (<a href="Distribution-ParseUtils.html#t:PError">PError</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a) -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</li><li class="src short"><a href="#v:parseFail">parseFail</a> :: <a href="Distribution-ParseUtils.html#t:PError">PError</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</li><li class="src short"><a href="#v:showPWarning">showPWarning</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-ParseUtils.html#t:PWarning">PWarning</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Field">Field</a> <ul class="subs"><li>= <a href="#v:F">F</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> </li><li>| <a href="#v:Section">Section</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> [<a href="Distribution-ParseUtils.html#t:Field">Field</a>] </li><li>| <a href="#v:IfBlock">IfBlock</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> [<a href="Distribution-ParseUtils.html#t:Field">Field</a>] [<a href="Distribution-ParseUtils.html#t:Field">Field</a>] </li></ul></li><li class="src short"><a href="#v:fName">fName</a> :: <a href="Distribution-ParseUtils.html#t:Field">Field</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:lineNo">lineNo</a> :: <a href="Distribution-ParseUtils.html#t:Field">Field</a> -> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:FieldDescr">FieldDescr</a> a = <a href="#v:FieldDescr">FieldDescr</a> {<ul class="subs"><li><a href="#v:fieldName">fieldName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:fieldGet">fieldGet</a> :: a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></li><li><a href="#v:fieldSet">fieldSet</a> :: <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> a -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</li></ul>}</li><li class="src short"><a href="#v:ppField">ppField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:ppFields">ppFields</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:readFields">readFields</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> [<a href="Distribution-ParseUtils.html#t:Field">Field</a>]</li><li class="src short"><a href="#v:readFieldsFlat">readFieldsFlat</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> [<a href="Distribution-ParseUtils.html#t:Field">Field</a>]</li><li class="src short"><a href="#v:showFields">showFields</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:showSingleNamedField">showSingleNamedField</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>)</li><li class="src short"><a href="#v:parseFields">parseFields</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</li><li class="src short"><a href="#v:parseFieldsFlat">parseFieldsFlat</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</li><li class="src short"><a href="#v:parseFilePathQ">parseFilePathQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:parseTokenQ">parseTokenQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:parseTokenQ-39-">parseTokenQ'</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:parseModuleNameQ">parseModuleNameQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></li><li class="src short"><a href="#v:parseBuildTool">parseBuildTool</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Package.html#t:Dependency">Dependency</a></li><li class="src short"><a href="#v:parsePkgconfigDependency">parsePkgconfigDependency</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Package.html#t:Dependency">Dependency</a></li><li class="src short"><a href="#v:parseOptVersion">parseOptVersion</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Version.html#t:Version">Version</a></li><li class="src short"><a href="#v:parsePackageNameQ">parsePackageNameQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Package.html#t:PackageName">PackageName</a></li><li class="src short"><a href="#v:parseVersionRangeQ">parseVersionRangeQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></li><li class="src short"><a href="#v:parseTestedWithQ">parseTestedWithQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)</li><li class="src short"><a href="#v:parseLicenseQ">parseLicenseQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-License.html#t:License">License</a></li><li class="src short"><a href="#v:parseLanguageQ">parseLanguageQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:Language">Language</a></li><li class="src short"><a href="#v:parseExtensionQ">parseExtensionQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></li><li class="src short"><a href="#v:parseSepList">parseSepList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r b -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:parseCommaList">parseCommaList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:parseOptCommaList">parseOptCommaList</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</li><li class="src short"><a href="#v:showFilePath">showFilePath</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:showToken">showToken</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:showTestedWith">showTestedWith</a> :: (<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>) -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:showFreeText">showFreeText</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:parseFreeText">parseFreeText</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> s <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:field">field</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a</li><li class="src short"><a href="#v:simpleField">simpleField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> (b -> a) -> (a -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</li><li class="src short"><a href="#v:listField">listField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> [a] a -> (b -> [a]) -> ([a] -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</li><li class="src short"><a href="#v:spaceListField">spaceListField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> [a] a -> (b -> [a]) -> ([a] -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</li><li class="src short"><a href="#v:commaListField">commaListField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> [a] a -> (b -> [a]) -> ([a] -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</li><li class="src short"><a href="#v:optsField">optsField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> (b -> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>])]) -> ([(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>])] -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</li><li class="src short"><a href="#v:liftField">liftField</a> :: (b -> a) -> (a -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</li><li class="src short"><a href="#v:boolField">boolField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (b -> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>) -> (<a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</li><li class="src short"><a href="#v:parseQuoted">parseQuoted</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</li><li class="src short"><span class="keyword">type</span> <a href="#t:UnrecFieldParser">UnrecFieldParser</a> a = (<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>) -> a -> <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:warnUnrec">warnUnrec</a> :: <a href="Distribution-ParseUtils.html#t:UnrecFieldParser">UnrecFieldParser</a> a</li><li class="src short"><a href="#v:ignoreUnrec">ignoreUnrec</a> :: <a href="Distribution-ParseUtils.html#t:UnrecFieldParser">UnrecFieldParser</a> a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:LineNo" class="def">LineNo</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:PError" class="def">PError</a> </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:AmbigousParse" class="def">AmbigousParse</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:NoParse" class="def">NoParse</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:TabsError" class="def">TabsError</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:FromString" class="def">FromString</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a>)</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:PError" class="caption collapser" onclick="toggleSection('i:PError')">Instances</p><div id="section.i:PError" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-ParseUtils.html#t:PError">PError</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:PWarning" class="def">PWarning</a> </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:PWarning" class="def">PWarning</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:UTFWarning" class="def">UTFWarning</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:PWarning" class="caption collapser" onclick="toggleSection('i:PWarning')">Instances</p><div id="section.i:PWarning" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-ParseUtils.html#t:PWarning">PWarning</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:locatedErrorMsg" class="def">locatedErrorMsg</a> :: <a href="Distribution-ParseUtils.html#t:PError">PError</a> -> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a>, <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>)</p></div><div class="top"><p class="src"><a name="v:syntaxError" class="def">syntaxError</a> :: <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</p></div><div class="top"><p class="src"><a name="v:warning" class="def">warning</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> ()</p></div><div class="top"><p class="src"><a name="v:runP" class="def">runP</a> :: <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</p></div><div class="top"><p class="src"><a name="v:runE" class="def">runE</a> :: <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ReadE.html#t:ReadE">ReadE</a> a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ParseResult" class="def">ParseResult</a> a </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ParseFailed" class="def">ParseFailed</a> <a href="Distribution-ParseUtils.html#t:PError">PError</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:ParseOk" class="def">ParseOk</a> [<a href="Distribution-ParseUtils.html#t:PWarning">PWarning</a>] a</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ParseResult" class="caption collapser" onclick="toggleSection('i:ParseResult')">Instances</p><div id="section.i:ParseResult" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> a => <a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> (<a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:catchParseError" class="def">catchParseError</a> :: <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a -> (<a href="Distribution-ParseUtils.html#t:PError">PError</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a) -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</p></div><div class="top"><p class="src"><a name="v:parseFail" class="def">parseFail</a> :: <a href="Distribution-ParseUtils.html#t:PError">PError</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</p></div><div class="top"><p class="src"><a name="v:showPWarning" class="def">showPWarning</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="Distribution-ParseUtils.html#t:PWarning">PWarning</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Field" class="def">Field</a> </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:F" class="def">F</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc"><p>A regular <code><a href="property">property</a>: <a href="value">value</a></code> field </p></td></tr><tr><td class="src"><a name="v:Section" class="def">Section</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> [<a href="Distribution-ParseUtils.html#t:Field">Field</a>]</td><td class="doc"><p>A section with a name and possible parameter. The syntactic structure is: </p><pre> <a href="sectionname">sectionname</a> <a href="arg">arg</a> { <a href="field">field</a>* } </pre></td></tr><tr><td class="src"><a name="v:IfBlock" class="def">IfBlock</a> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> [<a href="Distribution-ParseUtils.html#t:Field">Field</a>] [<a href="Distribution-ParseUtils.html#t:Field">Field</a>]</td><td class="doc"><p>A conditional block with an optional else branch: </p><pre> if <a href="condition">condition</a> { <a href="field">field</a>* } else { <a href="field">field</a>* } </pre></td></tr></table></div><div class="subs instances"><p id="control.i:Field" class="caption collapser" onclick="toggleSection('i:Field')">Instances</p><div id="section.i:Field" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-ParseUtils.html#t:Field">Field</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-ParseUtils.html#t:Field">Field</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:fName" class="def">fName</a> :: <a href="Distribution-ParseUtils.html#t:Field">Field</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><a name="v:lineNo" class="def">lineNo</a> :: <a href="Distribution-ParseUtils.html#t:Field">Field</a> -> <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:FieldDescr" class="def">FieldDescr</a> a </p><div class="doc"><p>Field descriptor. The parameter <code>a</code> parameterizes over where the field's value is stored in. </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FieldDescr" class="def">FieldDescr</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:fieldName" class="def">fieldName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:fieldGet" class="def">fieldGet</a> :: a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:fieldSet" class="def">fieldSet</a> :: <a href="Distribution-ParseUtils.html#t:LineNo">LineNo</a> -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> a -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</dt><dd class="doc"><p><code>fieldSet n str x</code> Parses the field value from the given input string <code>str</code> and stores the result in <code>x</code> if the parse was successful. Otherwise, reports an error on line number <code>n</code>. </p></dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><a name="v:ppField" class="def">ppField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></p></div><div class="top"><p class="src"><a name="v:ppFields" class="def">ppFields</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></p></div><div class="top"><p class="src"><a name="v:readFields" class="def">readFields</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> [<a href="Distribution-ParseUtils.html#t:Field">Field</a>]</p></div><div class="top"><p class="src"><a name="v:readFieldsFlat" class="def">readFieldsFlat</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> [<a href="Distribution-ParseUtils.html#t:Field">Field</a>]</p></div><div class="top"><p class="src"><a name="v:showFields" class="def">showFields</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><a name="v:showSingleNamedField" class="def">showSingleNamedField</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>)</p></div><div class="top"><p class="src"><a name="v:parseFields" class="def">parseFields</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</p></div><div class="top"><p class="src"><a name="v:parseFieldsFlat" class="def">parseFieldsFlat</a> :: [<a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a] -> a -> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-ParseUtils.html#t:ParseResult">ParseResult</a> a</p></div><div class="top"><p class="src"><a name="v:parseFilePathQ" class="def">parseFilePathQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></p></div><div class="top"><p class="src"><a name="v:parseTokenQ" class="def">parseTokenQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><a name="v:parseTokenQ-39-" class="def">parseTokenQ'</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><a name="v:parseModuleNameQ" class="def">parseModuleNameQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-ModuleName.html#t:ModuleName">ModuleName</a></p><div class="doc"><p>parse a module name </p></div></div><div class="top"><p class="src"><a name="v:parseBuildTool" class="def">parseBuildTool</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Package.html#t:Dependency">Dependency</a></p></div><div class="top"><p class="src"><a name="v:parsePkgconfigDependency" class="def">parsePkgconfigDependency</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Package.html#t:Dependency">Dependency</a></p></div><div class="top"><p class="src"><a name="v:parseOptVersion" class="def">parseOptVersion</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Version.html#t:Version">Version</a></p></div><div class="top"><p class="src"><a name="v:parsePackageNameQ" class="def">parsePackageNameQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Package.html#t:PackageName">PackageName</a></p></div><div class="top"><p class="src"><a name="v:parseVersionRangeQ" class="def">parseVersionRangeQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-Version.html#t:VersionRange">VersionRange</a></p></div><div class="top"><p class="src"><a name="v:parseTestedWithQ" class="def">parseTestedWithQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r (<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>)</p></div><div class="top"><p class="src"><a name="v:parseLicenseQ" class="def">parseLicenseQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Distribution-License.html#t:License">License</a></p></div><div class="top"><p class="src"><a name="v:parseLanguageQ" class="def">parseLanguageQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:Language">Language</a></p></div><div class="top"><p class="src"><a name="v:parseExtensionQ" class="def">parseExtensionQ</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r <a href="Language-Haskell-Extension.html#t:Extension">Extension</a></p></div><div class="top"><p class="src"><a name="v:parseSepList" class="def">parseSepList</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r b</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</td><td class="doc"><p>The parser for the stuff between commas </p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:parseCommaList" class="def">parseCommaList</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</td><td class="doc"><p>The parser for the stuff between commas </p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:parseOptCommaList" class="def">parseOptCommaList</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</td><td class="doc"><p>The parser for the stuff between commas </p></td></tr><tr><td class="src">-> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r [a]</td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:showFilePath" class="def">showFilePath</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></p></div><div class="top"><p class="src"><a name="v:showToken" class="def">showToken</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></p></div><div class="top"><p class="src"><a name="v:showTestedWith" class="def">showTestedWith</a> :: (<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, <a href="Distribution-Version.html#t:VersionRange">VersionRange</a>) -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></p></div><div class="top"><p class="src"><a name="v:showFreeText" class="def">showFreeText</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a></p><div class="doc"><p>Pretty-print free-format text, ensuring that it is vertically aligned, and with blank lines replaced by dots for correct re-parsing. </p></div></div><div class="top"><p class="src"><a name="v:parseFreeText" class="def">parseFreeText</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> s <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><a name="v:field" class="def">field</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a</p></div><div class="top"><p class="src"><a name="v:simpleField" class="def">simpleField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> a a -> (b -> a) -> (a -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</p></div><div class="top"><p class="src"><a name="v:listField" class="def">listField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> [a] a -> (b -> [a]) -> ([a] -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</p></div><div class="top"><p class="src"><a name="v:spaceListField" class="def">spaceListField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> [a] a -> (b -> [a]) -> ([a] -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</p></div><div class="top"><p class="src"><a name="v:commaListField" class="def">commaListField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (a -> <a href="../pretty-1.1.1.0/Text-PrettyPrint.html#t:Doc">Doc</a>) -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> [a] a -> (b -> [a]) -> ([a] -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</p></div><div class="top"><p class="src"><a name="v:optsField" class="def">optsField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> <a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a> -> (b -> [(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>])]) -> ([(<a href="Distribution-Compiler.html#t:CompilerFlavor">CompilerFlavor</a>, [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>])] -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</p></div><div class="top"><p class="src"><a name="v:liftField" class="def">liftField</a> :: (b -> a) -> (a -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> a -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</p></div><div class="top"><p class="src"><a name="v:boolField" class="def">boolField</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -> (b -> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>) -> (<a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -> b -> b) -> <a href="Distribution-ParseUtils.html#t:FieldDescr">FieldDescr</a> b</p></div><div class="top"><p class="src"><a name="v:parseQuoted" class="def">parseQuoted</a> :: <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a -> <a href="Distribution-Compat-ReadP.html#t:ReadP">ReadP</a> r a</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:UnrecFieldParser" class="def">UnrecFieldParser</a> a = (<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>) -> a -> <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a</p><div class="doc"><p>The type of a function which, given a name-value pair of an unrecognized field, and the current structure being built, decides whether to incorporate the unrecognized field (by returning Just x, where x is a possibly modified version of the structure being built), or not (by returning Nothing). </p></div></div><div class="top"><p class="src"><a name="v:warnUnrec" class="def">warnUnrec</a> :: <a href="Distribution-ParseUtils.html#t:UnrecFieldParser">UnrecFieldParser</a> a</p><div class="doc"><p>A default unrecognized field parser which simply returns Nothing, i.e. ignores all unrecognized fields, so warnings will be generated. </p></div></div><div class="top"><p class="src"><a name="v:ignoreUnrec" class="def">ignoreUnrec</a> :: <a href="Distribution-ParseUtils.html#t:UnrecFieldParser">UnrecFieldParser</a> a</p><div class="doc"><p>A default unrecognized field parser which silently (i.e. no warnings will be generated) ignores unrecognized fields, by returning the structure being built unmodified. </p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>