This file is indexed.

/usr/share/doc/libghc-hlint-doc/html/Language-Haskell-HLint3.html is in libghc-hlint-doc 2.0.11-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!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>Language.Haskell.HLint3</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Language-Haskell-HLint3.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Language-Haskell-HLint3.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">hlint-2.0.11: Source code suggestions</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Language.Haskell.HLint3</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Idea data type</a></li><li><a href="#g:2">Settings</a></li><li><a href="#g:3">Hints</a></li><li><a href="#g:4">Scopes</a></li><li><a href="#g:5">Haskell-src-exts</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p><em>WARNING: This module represents the evolving second version of the HLint API.</em>
   <em>It will be renamed to drop the &quot;3&quot; in the next major version.</em></p><p>This module provides a way to apply HLint hints. If you want to just run <code>hlint</code> in-process
   and collect the results see <code><a href="Language-Haskell-HLint3.html#v:hlint">hlint</a></code>. If you want to approximate the <code>hlint</code> experience with
   a more structured API try:</p><pre>(flags, classify, hint) &lt;- <code><a href="Language-Haskell-HLint3.html#v:autoSettings">autoSettings</a></code>
Right m &lt;- <code><a href="Language-Haskell-HLint3.html#v:parseModuleEx">parseModuleEx</a></code> flags &quot;MyFile.hs&quot; Nothing
print $ <code><a href="Language-Haskell-HLint3.html#v:applyHints">applyHints</a></code> classify hint [m]
</pre></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"><a href="#v:hlint">hlint</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</li><li class="src short"><a href="#v:applyHints">applyHints</a> :: [<a href="Language-Haskell-HLint3.html#t:Classify">Classify</a>] -&gt; <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a> -&gt; [(<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a>, [<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Comments.html#t:Comment">Comment</a>])] -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:Idea">Idea</a> = <a href="#v:Idea">Idea</a> {<ul class="subs"><li><a href="#v:ideaModule">ideaModule</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:ideaDecl">ideaDecl</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:ideaSeverity">ideaSeverity</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></li><li><a href="#v:ideaHint">ideaHint</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:ideaSpan">ideaSpan</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpan">SrcSpan</a></li><li><a href="#v:ideaFrom">ideaFrom</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:ideaTo">ideaTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:ideaNote">ideaNote</a> :: [<a href="Language-Haskell-HLint3.html#t:Note">Note</a>]</li><li><a href="#v:ideaRefactoring">ideaRefactoring</a> :: [<a href="file:///usr/share/doc/libghc-refact-doc/html/Refact-Types.html#t:Refactoring">Refactoring</a> <a href="file:///usr/share/doc/libghc-refact-doc/html/Refact-Types.html#t:SrcSpan">SrcSpan</a>]</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:Severity">Severity</a><ul class="subs"><li>= <a href="#v:Ignore">Ignore</a></li><li>| <a href="#v:Suggestion">Suggestion</a></li><li>| <a href="#v:Warning">Warning</a></li><li>| <a href="#v:Error">Error</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Note">Note</a><ul class="subs"><li>= <a href="#v:IncreasesLaziness">IncreasesLaziness</a></li><li>| <a href="#v:DecreasesLaziness">DecreasesLaziness</a></li><li>| <a href="#v:RemovesError">RemovesError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li>| <a href="#v:ValidInstance">ValidInstance</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li>| <a href="#v:Note">Note</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Classify">Classify</a> = <a href="#v:Classify">Classify</a> {<ul class="subs"><li><a href="#v:classifySeverity">classifySeverity</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></li><li><a href="#v:classifyHint">classifyHint</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:classifyModule">classifyModule</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:classifyDecl">classifyDecl</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li></ul>}</li><li class="src short"><a href="#v:getHLintDataDir">getHLintDataDir</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:autoSettings">autoSettings</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a>, [<a href="Language-Haskell-HLint3.html#t:Classify">Classify</a>], <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a>)</li><li class="src short"><a href="#v:argsSettings">argsSettings</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a>, [<a href="Language-Haskell-HLint3.html#t:Classify">Classify</a>], <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a>)</li><li class="src short"><a href="#v:findSettings">findSettings</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>)) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> ([<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Fixity.html#t:Fixity">Fixity</a>], [<a href="Language-Haskell-HLint3.html#t:Classify">Classify</a>], [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="Language-Haskell-HLint3.html#t:HintRule">HintRule</a>])</li><li class="src short"><a href="#v:readSettingsFile">readSettingsFile</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>)</li><li class="src short"><span class="keyword">data</span> <a href="#t:HintBuiltin">HintBuiltin</a><ul class="subs"><li>= <a href="#v:HintList">HintList</a></li><li>| <a href="#v:HintListRec">HintListRec</a></li><li>| <a href="#v:HintMonad">HintMonad</a></li><li>| <a href="#v:HintLambda">HintLambda</a></li><li>| <a href="#v:HintBracket">HintBracket</a></li><li>| <a href="#v:HintNaming">HintNaming</a></li><li>| <a href="#v:HintPattern">HintPattern</a></li><li>| <a href="#v:HintImport">HintImport</a></li><li>| <a href="#v:HintExport">HintExport</a></li><li>| <a href="#v:HintPragma">HintPragma</a></li><li>| <a href="#v:HintExtensions">HintExtensions</a></li><li>| <a href="#v:HintUnsafe">HintUnsafe</a></li><li>| <a href="#v:HintDuplicate">HintDuplicate</a></li><li>| <a href="#v:HintRestrict">HintRestrict</a></li><li>| <a href="#v:HintComment">HintComment</a></li><li>| <a href="#v:HintNewType">HintNewType</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:HintRule">HintRule</a> = <a href="#v:HintRule">HintRule</a> {<ul class="subs"><li><a href="#v:hintRuleSeverity">hintRuleSeverity</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></li><li><a href="#v:hintRuleName">hintRuleName</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:hintRuleScope">hintRuleScope</a> :: <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a></li><li><a href="#v:hintRuleLHS">hintRuleLHS</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a></li><li><a href="#v:hintRuleRHS">hintRuleRHS</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a></li><li><a href="#v:hintRuleSide">hintRuleSide</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a>)</li><li><a href="#v:hintRuleNotes">hintRuleNotes</a> :: [<a href="Language-Haskell-HLint3.html#t:Note">Note</a>]</li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:Hint">Hint</a> = <a href="#v:Hint">Hint</a> {<ul class="subs"><li><a href="#v:hintModules">hintModules</a> :: [Setting] -&gt; [(<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>, <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a>)] -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</li><li><a href="#v:hintModule">hintModule</a> :: [Setting] -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</li><li><a href="#v:hintDecl">hintDecl</a> :: [Setting] -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a> -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</li><li><a href="#v:hintComment">hintComment</a> :: [Setting] -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Comments.html#t:Comment">Comment</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</li></ul>}</li><li class="src short"><a href="#v:resolveHints">resolveHints</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="Language-Haskell-HLint3.html#t:HintRule">HintRule</a>] -&gt; <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Scope">Scope</a></li><li class="src short"><a href="#v:scopeCreate">scopeCreate</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a></li><li class="src short"><a href="#v:scopeMatch">scopeMatch</a> :: (<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>, <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:QName">QName</a> S) -&gt; (<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>, <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:QName">QName</a> S) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:scopeMove">scopeMove</a> :: (<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>, <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:QName">QName</a> S) -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:QName">QName</a> S</li><li class="src short"><a href="#v:parseModuleEx">parseModuleEx</a> :: <a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> <a href="Language-Haskell-HLint3.html#t:ParseError">ParseError</a> (<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a>, [<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Comments.html#t:Comment">Comment</a>]))</li><li class="src short"><a href="#v:defaultParseFlags">defaultParseFlags</a> :: <a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a></li><li class="src short"><a href="#v:parseFlagsAddFixities">parseFlagsAddFixities</a> :: [<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Fixity.html#t:Fixity">Fixity</a>] -&gt; <a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a> -&gt; <a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ParseError">ParseError</a> = <a href="#v:ParseError">ParseError</a> {<ul class="subs"><li><a href="#v:parseErrorLocation">parseErrorLocation</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcLoc">SrcLoc</a></li><li><a href="#v:parseErrorMessage">parseErrorMessage</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:parseErrorContents">parseErrorContents</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:ParseFlags">ParseFlags</a> = <a href="#v:ParseFlags">ParseFlags</a> {<ul class="subs"><li><a href="#v:cppFlags">cppFlags</a> :: <a href="Language-Haskell-HLint3.html#t:CppFlags">CppFlags</a></li><li><a href="#v:hseFlags">hseFlags</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Parser.html#t:ParseMode">ParseMode</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:CppFlags">CppFlags</a><ul class="subs"><li>= <a href="#v:NoCpp">NoCpp</a></li><li>| <a href="#v:CppSimple">CppSimple</a></li><li>| <a href="#v:Cpphs">Cpphs</a> <a href="file:///usr/share/doc/libghc-cpphs-doc/html/Language-Preprocessor-Cpphs.html#t:CpphsOptions">CpphsOptions</a></li></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:hlint" class="def">hlint</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>] <a href="src/HLint.html#hlint" class="link">Source</a> <a href="#v:hlint" class="selflink">#</a></p><div class="doc"><p>This function takes a list of command line arguments, and returns the given hints.
   To see a list of arguments type <code>hlint --help</code> at the console.
   This function writes to the stdout/stderr streams, unless <code>--quiet</code> is specified.</p><p>As an example:</p><pre>do hints &lt;- hlint [&quot;src&quot;, &quot;--ignore=Use map&quot;,&quot;--quiet&quot;]
   when (length hints &gt; 3) $ error &quot;Too many hints!&quot;</pre><p><em>Warning:</em> The flags provided by HLint are relatively stable, but do not have the same
   API stability guarantees as the rest of the strongly-typed API. Do not run this function
   on a your server with untrusted input.</p></div></div><div class="top"><p class="src"><a id="v:applyHints" class="def">applyHints</a> :: [<a href="Language-Haskell-HLint3.html#t:Classify">Classify</a>] -&gt; <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a> -&gt; [(<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a>, [<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Comments.html#t:Comment">Comment</a>])] -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>] <a href="src/Apply.html#applyHints" class="link">Source</a> <a href="#v:applyHints" class="selflink">#</a></p><div class="doc"><p>Given a way of classifying results, and a <code><a href="Language-Haskell-HLint3.html#t:Hint">Hint</a></code>, apply to a set of modules generating a list of <code><a href="Language-Haskell-HLint3.html#t:Idea">Idea</a></code>s.
   The <code><a href="Language-Haskell-HLint3.html#t:Idea">Idea</a></code> values will be ordered within a file.</p><p>Given a set of modules, it may be faster pass each to <code><a href="Language-Haskell-HLint3.html#v:applyHints">applyHints</a></code> in a singleton list.
   When given multiple modules at once this function attempts to find hints between modules,
   which is slower and often pointless (by default HLint passes modules singularly, using
   <code>--cross</code> to pass all modules together).</p></div></div><h1 id="g:1">Idea data type</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Idea" class="def">Idea</a> <a href="src/Idea.html#Idea" class="link">Source</a> <a href="#t:Idea" class="selflink">#</a></p><div class="doc"><p>An idea suggest by a <code>Hint</code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Idea" class="def">Idea</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:ideaModule" class="def">ideaModule</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The module the idea applies to, may be <code>&quot;&quot;</code> if the module cannot be determined or is a result of cross-module hints.</p></div></li><li><dfn class="src"><a id="v:ideaDecl" class="def">ideaDecl</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The declaration the idea applies to, typically the function name, but may be a type name.</p></div></li><li><dfn class="src"><a id="v:ideaSeverity" class="def">ideaSeverity</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></dfn><div class="doc"><p>The severity of the idea, e.g. <code><a href="Language-Haskell-HLint3.html#v:Warning">Warning</a></code>.</p></div></li><li><dfn class="src"><a id="v:ideaHint" class="def">ideaHint</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The name of the hint that generated the idea, e.g. <code>&quot;Use reverse&quot;</code>.</p></div></li><li><dfn class="src"><a id="v:ideaSpan" class="def">ideaSpan</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpan">SrcSpan</a></dfn><div class="doc"><p>The source code the idea relates to.</p></div></li><li><dfn class="src"><a id="v:ideaFrom" class="def">ideaFrom</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The contents of the source code the idea relates to.</p></div></li><li><dfn class="src"><a id="v:ideaTo" class="def">ideaTo</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>The suggested replacement, or <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#v:Nothing">Nothing</a></code> for no replacement (e.g. on parse errors).</p></div></li><li><dfn class="src"><a id="v:ideaNote" class="def">ideaNote</a> :: [<a href="Language-Haskell-HLint3.html#t:Note">Note</a>]</dfn><div class="doc"><p>Notes about the effect of applying the replacement.</p></div></li><li><dfn class="src"><a id="v:ideaRefactoring" class="def">ideaRefactoring</a> :: [<a href="file:///usr/share/doc/libghc-refact-doc/html/Refact-Types.html#t:Refactoring">Refactoring</a> <a href="file:///usr/share/doc/libghc-refact-doc/html/Refact-Types.html#t:SrcSpan">SrcSpan</a>]</dfn><div class="doc"><p>How to perform this idea</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Idea" class="caption collapser" onclick="toggleSection('i:Idea')">Instances</p><div id="section.i:Idea" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Idea:Eq:1" class="instance expander" onclick="toggleSection('i:id:Idea:Eq:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a></span> <a href="src/Idea.html#line-34" class="link">Source</a> <a href="#t:Idea" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Idea:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Idea:Ord:2" class="instance expander" onclick="toggleSection('i:id:Idea:Ord:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a></span> <a href="src/Idea.html#line-34" class="link">Source</a> <a href="#t:Idea" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Idea:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Idea:Show:3" class="instance expander" onclick="toggleSection('i:id:Idea:Show:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a></span> <a href="src/Idea.html#line-69" class="link">Source</a> <a href="#t:Idea" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Idea:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-HLint3.html#t:Idea">Idea</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Severity" class="def">Severity</a> <a href="src/Config-Type.html#Severity" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></p><div class="doc"><p>How severe an issue is.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Ignore" class="def">Ignore</a></td><td class="doc"><p>The issue has been explicitly ignored and will usually be hidden (pass <code>--show</code> on the command line to see ignored ideas).</p></td></tr><tr><td class="src"><a id="v:Suggestion" class="def">Suggestion</a></td><td class="doc"><p>Suggestions are things that some people may consider improvements, but some may not.</p></td></tr><tr><td class="src"><a id="v:Warning" class="def">Warning</a></td><td class="doc"><p>Warnings are suggestions that are nearly always a good idea to apply.</p></td></tr><tr><td class="src"><a id="v:Error" class="def">Error</a></td><td class="doc"><p>Available as a setting for the user.</p></td></tr></table></div><div class="subs instances"><p id="control.i:Severity" class="caption collapser" onclick="toggleSection('i:Severity')">Instances</p><div id="section.i:Severity" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Severity:Bounded:1" class="instance expander" onclick="toggleSection('i:id:Severity:Bounded:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Bounded">Bounded</a> <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></span> <a href="src/Config-Type.html#line-41" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Severity:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Severity:Enum:2" class="instance expander" onclick="toggleSection('i:id:Severity:Enum:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Enum">Enum</a> <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></span> <a href="src/Config-Type.html#line-41" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Severity:Enum:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Severity">Severity</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Severity">Severity</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Severity">Severity</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Severity">Severity</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Severity:Eq:3" class="instance expander" onclick="toggleSection('i:id:Severity:Eq:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></span> <a href="src/Config-Type.html#line-41" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Severity:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Severity:Ord:4" class="instance expander" onclick="toggleSection('i:id:Severity:Ord:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></span> <a href="src/Config-Type.html#line-41" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Severity:Ord:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Severity:Read:5" class="instance expander" onclick="toggleSection('i:id:Severity:Read:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Read.html#t:Read">Read</a> <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></span> <a href="src/Config-Type.html#line-41" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Severity:Read:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:readsPrec">readsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-ParserCombinators-ReadP.html#t:ReadS">ReadS</a> <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> <a href="#v:readsPrec" class="selflink">#</a></p><p class="src"><a href="#v:readList">readList</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-ParserCombinators-ReadP.html#t:ReadS">ReadS</a> [<a href="Language-Haskell-HLint3.html#t:Severity">Severity</a>] <a href="#v:readList" class="selflink">#</a></p><p class="src"><a href="#v:readPrec">readPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> <a href="#v:readPrec" class="selflink">#</a></p><p class="src"><a href="#v:readListPrec">readListPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-ParserCombinators-ReadPrec.html#t:ReadPrec">ReadPrec</a> [<a href="Language-Haskell-HLint3.html#t:Severity">Severity</a>] <a href="#v:readListPrec" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Severity:Show:6" class="instance expander" onclick="toggleSection('i:id:Severity:Show:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></span> <a href="src/Config-Type.html#line-41" class="link">Source</a> <a href="#t:Severity" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Severity:Show:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-HLint3.html#t:Severity">Severity</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Note" class="def">Note</a> <a href="src/Config-Type.html#Note" class="link">Source</a> <a href="#t:Note" class="selflink">#</a></p><div class="doc"><p>A note describing the impact of the replacement.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:IncreasesLaziness" class="def">IncreasesLaziness</a></td><td class="doc"><p>The replacement is increases laziness, for example replacing <code>reverse (reverse x)</code> with <code>x</code> makes the code lazier.</p></td></tr><tr><td class="src"><a id="v:DecreasesLaziness" class="def">DecreasesLaziness</a></td><td class="doc"><p>The replacement is decreases laziness, for example replacing <code>(fst x, snd x)</code> with <code>x</code> makes the code stricter.</p></td></tr><tr><td class="src"><a id="v:RemovesError" class="def">RemovesError</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></td><td class="doc"><p>The replacement removes errors, for example replacing <code>foldr1 (+)</code> with <code>sum</code> removes an error on <code>[]</code>, and might contain the text <code>&quot;on []&quot;</code>.</p></td></tr><tr><td class="src"><a id="v:ValidInstance" class="def">ValidInstance</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></td><td class="doc"><p>The replacement assumes standard type class lemmas, a hint with the note <code>ValidInstance &quot;Eq&quot; &quot;x&quot;</code> might only be valid if
   the <code>x</code> variable has a reflexive <code>Eq</code> instance.</p></td></tr><tr><td class="src"><a id="v:Note" class="def">Note</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></td><td class="doc"><p>An arbitrary note.</p></td></tr></table></div><div class="subs instances"><p id="control.i:Note" class="caption collapser" onclick="toggleSection('i:Note')">Instances</p><div id="section.i:Note" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Note:Eq:1" class="instance expander" onclick="toggleSection('i:id:Note:Eq:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-HLint3.html#t:Note">Note</a></span> <a href="src/Config-Type.html#line-61" class="link">Source</a> <a href="#t:Note" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Note:Eq:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Note:Ord:2" class="instance expander" onclick="toggleSection('i:id:Note:Ord:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-HLint3.html#t:Note">Note</a></span> <a href="src/Config-Type.html#line-61" class="link">Source</a> <a href="#t:Note" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Note:Ord:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Note:Show:3" class="instance expander" onclick="toggleSection('i:id:Note:Show:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-HLint3.html#t:Note">Note</a></span> <a href="src/Config-Type.html#line-63" class="link">Source</a> <a href="#t:Note" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Note:Show:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-HLint3.html#t:Note">Note</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-HLint3.html#t:Note">Note</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h1 id="g:2">Settings</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Classify" class="def">Classify</a> <a href="src/Config-Type.html#Classify" class="link">Source</a> <a href="#t:Classify" class="selflink">#</a></p><div class="doc"><p>How to classify an <code>Idea</code>. If any matching field is <code>&quot;&quot;</code> then it matches everything.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Classify" class="def">Classify</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:classifySeverity" class="def">classifySeverity</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></dfn><div class="doc"><p>Severity to set the <code>Idea</code> to.</p></div></li><li><dfn class="src"><a id="v:classifyHint" class="def">classifyHint</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Match on <code>Idea</code> field <code>ideaHint</code>.</p></div></li><li><dfn class="src"><a id="v:classifyModule" class="def">classifyModule</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Match on <code>Idea</code> field <code>ideaModule</code>.</p></div></li><li><dfn class="src"><a id="v:classifyDecl" class="def">classifyDecl</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Match on <code>Idea</code> field <code>ideaDecl</code>.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Classify" class="caption collapser" onclick="toggleSection('i:Classify')">Instances</p><div id="section.i:Classify" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Classify:Show:1" class="instance expander" onclick="toggleSection('i:id:Classify:Show:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-HLint3.html#t:Classify">Classify</a></span> <a href="src/Config-Type.html#line-83" class="link">Source</a> <a href="#t:Classify" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Classify:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Classify">Classify</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-HLint3.html#t:Classify">Classify</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-HLint3.html#t:Classify">Classify</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:getHLintDataDir" class="def">getHLintDataDir</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a> <a href="src/Language-Haskell-HLint3.html#getHLintDataDir" class="link">Source</a> <a href="#v:getHLintDataDir" class="selflink">#</a></p><div class="doc"><p>Get the Cabal configured data directory of HLint.</p></div></div><div class="top"><p class="src"><a id="v:autoSettings" class="def">autoSettings</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a>, [<a href="Language-Haskell-HLint3.html#t:Classify">Classify</a>], <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a>) <a href="src/Language-Haskell-HLint3.html#autoSettings" class="link">Source</a> <a href="#v:autoSettings" class="selflink">#</a></p><div class="doc"><p>The function produces a tuple containg <code><a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a></code> (for <code><a href="Language-Haskell-HLint3.html#v:parseModuleEx">parseModuleEx</a></code>),
   and <code><a href="Language-Haskell-HLint3.html#t:Classify">Classify</a></code> and <code><a href="Language-Haskell-HLint3.html#t:Hint">Hint</a></code> for <code><a href="Language-Haskell-HLint3.html#v:applyHints">applyHints</a></code>.
   It approximates the normal HLint configuration steps, roughly:</p><ol><li>Use <code><a href="Language-Haskell-HLint3.html#v:findSettings">findSettings</a></code> with <code><a href="Language-Haskell-HLint3.html#v:readSettingsFile">readSettingsFile</a></code> to find and load the HLint settings files.</li><li>Use <code><a href="Language-Haskell-HLint3.html#v:parseFlagsAddFixities">parseFlagsAddFixities</a></code> and <code><a href="Language-Haskell-HLint3.html#v:resolveHints">resolveHints</a></code> to transform the outputs of <code><a href="Language-Haskell-HLint3.html#v:findSettings">findSettings</a></code>.</li></ol><p>If you want to do anything custom (e.g. using a different data directory, storing intermediate outputs,
   loading hints from a database) you are expected to copy and paste this function, then change it to your needs.</p></div></div><div class="top"><p class="src"><a id="v:argsSettings" class="def">argsSettings</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a>, [<a href="Language-Haskell-HLint3.html#t:Classify">Classify</a>], <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a>) <a href="src/Language-Haskell-HLint3.html#argsSettings" class="link">Source</a> <a href="#v:argsSettings" class="selflink">#</a></p><div class="doc"><p>A version of <code><a href="Language-Haskell-HLint3.html#v:autoSettings">autoSettings</a></code> which respects some of the arguments supported by HLint.
   If arguments unrecognised by HLint are used it will result in an error.
   Arguments which have no representation in the return type are silently ignored.</p></div></div><div class="top"><p class="src"><a id="v:findSettings" class="def">findSettings</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>)) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> ([<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Fixity.html#t:Fixity">Fixity</a>], [<a href="Language-Haskell-HLint3.html#t:Classify">Classify</a>], [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="Language-Haskell-HLint3.html#t:HintRule">HintRule</a>]) <a href="src/Language-Haskell-HLint3.html#findSettings" class="link">Source</a> <a href="#v:findSettings" class="selflink">#</a></p><div class="doc"><p>Given a function to load a module (typically <code><a href="Language-Haskell-HLint3.html#v:readSettingsFile">readSettingsFile</a></code>), and a module to start from
   (defaults to <code>hlint.yaml</code>) find the information from all settings files.</p></div></div><div class="top"><p class="src"><a id="v:readSettingsFile" class="def">readSettingsFile</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>) <a href="src/Language-Haskell-HLint3.html#readSettingsFile" class="link">Source</a> <a href="#v:readSettingsFile" class="selflink">#</a></p><div class="doc"><p>Given a directory (or <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#v:Nothing">Nothing</a></code> to imply <code><a href="Language-Haskell-HLint3.html#v:getHLintDataDir">getHLintDataDir</a></code>), and a module name
   (e.g. <code>HLint.Default</code>), find the settings file associated with it, returning the
   name of the file, and (optionally) the contents.</p><p>This function looks for all settings files starting with <code>HLint.</code> in the directory
   argument, and all other files relative to the current directory.</p></div></div><h1 id="g:3">Hints</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:HintBuiltin" class="def">HintBuiltin</a> <a href="src/Hint-All.html#HintBuiltin" class="link">Source</a> <a href="#t:HintBuiltin" class="selflink">#</a></p><div class="doc"><p>A list of the builtin hints wired into HLint.
   This list is likely to grow over time.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:HintList" class="def">HintList</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintListRec" class="def">HintListRec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintMonad" class="def">HintMonad</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintLambda" class="def">HintLambda</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintBracket" class="def">HintBracket</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintNaming" class="def">HintNaming</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintPattern" class="def">HintPattern</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintImport" class="def">HintImport</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintExport" class="def">HintExport</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintPragma" class="def">HintPragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintExtensions" class="def">HintExtensions</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintUnsafe" class="def">HintUnsafe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintDuplicate" class="def">HintDuplicate</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintRestrict" class="def">HintRestrict</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintComment" class="def">HintComment</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:HintNewType" class="def">HintNewType</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:HintBuiltin" class="caption collapser" onclick="toggleSection('i:HintBuiltin')">Instances</p><div id="section.i:HintBuiltin" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HintBuiltin:Bounded:1" class="instance expander" onclick="toggleSection('i:id:HintBuiltin:Bounded:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Bounded">Bounded</a> <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a></span> <a href="src/Hint-All.html#line-39" class="link">Source</a> <a href="#t:HintBuiltin" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:HintBuiltin:Bounded:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:minBound">minBound</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="#v:minBound" class="selflink">#</a></p><p class="src"><a href="#v:maxBound">maxBound</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="#v:maxBound" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HintBuiltin:Enum:2" class="instance expander" onclick="toggleSection('i:id:HintBuiltin:Enum:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Enum">Enum</a> <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a></span> <a href="src/Hint-All.html#line-39" class="link">Source</a> <a href="#t:HintBuiltin" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:HintBuiltin:Enum:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:succ">succ</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="#v:succ" class="selflink">#</a></p><p class="src"><a href="#v:pred">pred</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="#v:pred" class="selflink">#</a></p><p class="src"><a href="#v:toEnum">toEnum</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="#v:toEnum" class="selflink">#</a></p><p class="src"><a href="#v:fromEnum">fromEnum</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> <a href="#v:fromEnum" class="selflink">#</a></p><p class="src"><a href="#v:enumFrom">enumFrom</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a>] <a href="#v:enumFrom" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThen">enumFromThen</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a>] <a href="#v:enumFromThen" class="selflink">#</a></p><p class="src"><a href="#v:enumFromTo">enumFromTo</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a>] <a href="#v:enumFromTo" class="selflink">#</a></p><p class="src"><a href="#v:enumFromThenTo">enumFromThenTo</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a>] <a href="#v:enumFromThenTo" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HintBuiltin:Eq:3" class="instance expander" onclick="toggleSection('i:id:HintBuiltin:Eq:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a></span> <a href="src/Hint-All.html#line-39" class="link">Source</a> <a href="#t:HintBuiltin" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:HintBuiltin:Eq:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HintBuiltin:Ord:4" class="instance expander" onclick="toggleSection('i:id:HintBuiltin:Ord:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a></span> <a href="src/Hint-All.html#line-39" class="link">Source</a> <a href="#t:HintBuiltin" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:HintBuiltin:Ord:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Ord.html#t:Ordering">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="#v:min" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HintBuiltin:Show:5" class="instance expander" onclick="toggleSection('i:id:HintBuiltin:Show:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a></span> <a href="src/Hint-All.html#line-39" class="link">Source</a> <a href="#t:HintBuiltin" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:HintBuiltin:Show:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:HintRule" class="def">HintRule</a> <a href="src/Config-Type.html#HintRule" class="link">Source</a> <a href="#t:HintRule" class="selflink">#</a></p><div class="doc"><p>A <code>LHS ==&gt; RHS</code> style hint rule.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:HintRule" class="def">HintRule</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:hintRuleSeverity" class="def">hintRuleSeverity</a> :: <a href="Language-Haskell-HLint3.html#t:Severity">Severity</a></dfn><div class="doc"><p>Default severity for the hint.</p></div></li><li><dfn class="src"><a id="v:hintRuleName" class="def">hintRuleName</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Name for the hint.</p></div></li><li><dfn class="src"><a id="v:hintRuleScope" class="def">hintRuleScope</a> :: <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a></dfn><div class="doc"><p>Module scope in which the hint operates.</p></div></li><li><dfn class="src"><a id="v:hintRuleLHS" class="def">hintRuleLHS</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a></dfn><div class="doc"><p>LHS</p></div></li><li><dfn class="src"><a id="v:hintRuleRHS" class="def">hintRuleRHS</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a></dfn><div class="doc"><p>RHS</p></div></li><li><dfn class="src"><a id="v:hintRuleSide" class="def">hintRuleSide</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Exp">Exp</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a>)</dfn><div class="doc"><p>Side condition, typically specified with <code>where _ = ...</code>.</p></div></li><li><dfn class="src"><a id="v:hintRuleNotes" class="def">hintRuleNotes</a> :: [<a href="Language-Haskell-HLint3.html#t:Note">Note</a>]</dfn><div class="doc"><p>Notes about application of the hint.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:HintRule" class="caption collapser" onclick="toggleSection('i:HintRule')">Instances</p><div id="section.i:HintRule" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:HintRule:Show:1" class="instance expander" onclick="toggleSection('i:id:HintRule:Show:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-HLint3.html#t:HintRule">HintRule</a></span> <a href="src/Config-Type.html#line-95" class="link">Source</a> <a href="#t:HintRule" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:HintRule:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-HLint3.html#t:HintRule">HintRule</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-HLint3.html#t:HintRule">HintRule</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-HLint3.html#t:HintRule">HintRule</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Hint" class="def">Hint</a> <a href="src/Hint-Type.html#Hint" class="link">Source</a> <a href="#t:Hint" class="selflink">#</a></p><div class="doc"><p>Functions to generate hints, combined using the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a></code> instance.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Hint" class="def">Hint</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:hintModules" class="def">hintModules</a> :: [Setting] -&gt; [(<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>, <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a>)] -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</dfn><div class="doc"><p>Given a list of modules (and their scope information) generate some <code><a href="Language-Haskell-HLint3.html#t:Idea">Idea</a></code>s.</p></div></li><li><dfn class="src"><a id="v:hintModule" class="def">hintModule</a> :: [Setting] -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</dfn><div class="doc"><p>Given a single module and its scope information generate some <code><a href="Language-Haskell-HLint3.html#t:Idea">Idea</a></code>s.</p></div></li><li><dfn class="src"><a id="v:hintDecl" class="def">hintDecl</a> :: [Setting] -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a> -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</dfn><div class="doc"><p>Given a declaration (with a module and scope) generate some <code><a href="Language-Haskell-HLint3.html#t:Idea">Idea</a></code>s.
   This function will be partially applied with one module/scope, then used on multiple <code><a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Decl">Decl</a></code> values.</p></div></li><li><dfn class="src"><a id="v:hintComment" class="def">hintComment</a> :: [Setting] -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Comments.html#t:Comment">Comment</a> -&gt; [<a href="Language-Haskell-HLint3.html#t:Idea">Idea</a>]</dfn><div class="doc"><p>Given a comment generate some <code><a href="Language-Haskell-HLint3.html#t:Idea">Idea</a></code>s.</p></div></li></ul></div></td></tr></table></div><div class="subs instances"><p id="control.i:Hint" class="caption collapser" onclick="toggleSection('i:Hint')">Instances</p><div id="section.i:Hint" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Hint:Monoid:1" class="instance expander" onclick="toggleSection('i:id:Hint:Monoid:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a></span> <a href="src/Hint-Type.html#line-29" class="link">Source</a> <a href="#t:Hint" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Hint:Monoid:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Language-Haskell-HLint3.html#t:Hint">Hint</a>] -&gt; <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:resolveHints" class="def">resolveHints</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> <a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a> <a href="Language-Haskell-HLint3.html#t:HintRule">HintRule</a>] -&gt; <a href="Language-Haskell-HLint3.html#t:Hint">Hint</a> <a href="src/Hint-All.html#resolveHints" class="link">Source</a> <a href="#v:resolveHints" class="selflink">#</a></p><div class="doc"><p>Transform a list of <code><a href="Language-Haskell-HLint3.html#t:HintBuiltin">HintBuiltin</a></code> or <code><a href="Language-Haskell-HLint3.html#t:HintRule">HintRule</a></code> into a <code><a href="Language-Haskell-HLint3.html#t:Hint">Hint</a></code>.</p></div></div><h1 id="g:4">Scopes</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Scope" class="def">Scope</a> <a href="src/HSE-Scope.html#Scope" class="link">Source</a> <a href="#t:Scope" class="selflink">#</a></p><div class="doc"><p>Data type representing the modules in scope within a module.
   Created with <code><a href="Language-Haskell-HLint3.html#v:scopeCreate">scopeCreate</a></code> and queried with <code><a href="Language-Haskell-HLint3.html#v:scopeMatch">scopeMatch</a></code> and <code><a href="Language-Haskell-HLint3.html#v:scopeMove">scopeMove</a></code>.
   Note that the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#v:mempty">mempty</a></code> <code><a href="Language-Haskell-HLint3.html#t:Scope">Scope</a></code> is not equivalent to <code><a href="Language-Haskell-HLint3.html#v:scopeCreate">scopeCreate</a></code> on an empty module,
   due to the implicit import of <code>Prelude</code>.</p></div><div class="subs instances"><p id="control.i:Scope" class="caption collapser" onclick="toggleSection('i:Scope')">Instances</p><div id="section.i:Scope" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Scope:Show:1" class="instance expander" onclick="toggleSection('i:id:Scope:Show:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a></span> <a href="src/HSE-Scope.html#line-37" class="link">Source</a> <a href="#t:Scope" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Scope:Show:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:showsPrec">showsPrec</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showsPrec" class="selflink">#</a></p><p class="src"><a href="#v:show">show</a> :: <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> <a href="#v:show" class="selflink">#</a></p><p class="src"><a href="#v:showList">showList</a> :: [<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Text-Show.html#t:ShowS">ShowS</a> <a href="#v:showList" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Scope:Monoid:2" class="instance expander" onclick="toggleSection('i:id:Scope:Monoid:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a></span> <a href="src/HSE-Scope.html#line-39" class="link">Source</a> <a href="#t:Scope" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Scope:Monoid:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>] -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:scopeCreate" class="def">scopeCreate</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a> -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> <a href="src/HSE-Scope.html#scopeCreate" class="link">Source</a> <a href="#v:scopeCreate" class="selflink">#</a></p><div class="doc"><p>Create a <code><a href="Language-Haskell-HLint3.html#t:Scope">Scope</a></code> value from a module, based on the modules imports.</p></div></div><div class="top"><p class="src"><a id="v:scopeMatch" class="def">scopeMatch</a> :: (<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>, <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:QName">QName</a> S) -&gt; (<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>, <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:QName">QName</a> S) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/HSE-Scope.html#scopeMatch" class="link">Source</a> <a href="#v:scopeMatch" class="selflink">#</a></p><div class="doc"><p>Given a two names in scopes, could they possibly refer to the same thing.
   This property is reflexive.</p></div></div><div class="top"><p class="src"><a id="v:scopeMove" class="def">scopeMove</a> :: (<a href="Language-Haskell-HLint3.html#t:Scope">Scope</a>, <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:QName">QName</a> S) -&gt; <a href="Language-Haskell-HLint3.html#t:Scope">Scope</a> -&gt; <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:QName">QName</a> S <a href="src/HSE-Scope.html#scopeMove" class="link">Source</a> <a href="#v:scopeMove" class="selflink">#</a></p><div class="doc"><p>Given a name in a scope, and a new scope, create a name for the new scope that will refer
   to the same thing. If the resulting name is ambiguous, it picks a plausible candidate.</p></div></div><h1 id="g:5">Haskell-src-exts</h1><div class="top"><p class="src"><a id="v:parseModuleEx" class="def">parseModuleEx</a> :: <a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> <a href="Language-Haskell-HLint3.html#t:ParseError">ParseError</a> (<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Syntax.html#t:Module">Module</a> <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcSpanInfo">SrcSpanInfo</a>, [<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Comments.html#t:Comment">Comment</a>])) <a href="src/HSE-All.html#parseModuleEx" class="link">Source</a> <a href="#v:parseModuleEx" class="selflink">#</a></p><div class="doc"><p>Parse a Haskell module. Applies the C pre processor, and uses best-guess fixity resolution if there are ambiguities.
   The filename <code>-</code> is treated as <code>stdin</code>. Requires some flags (often <code><a href="Language-Haskell-HLint3.html#v:defaultParseFlags">defaultParseFlags</a></code>), the filename, and optionally the contents of that file.</p></div></div><div class="top"><p class="src"><a id="v:defaultParseFlags" class="def">defaultParseFlags</a> :: <a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a> <a href="src/HSE-All.html#defaultParseFlags" class="link">Source</a> <a href="#v:defaultParseFlags" class="selflink">#</a></p><div class="doc"><p>Default value for <code><a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:parseFlagsAddFixities" class="def">parseFlagsAddFixities</a> :: [<a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Fixity.html#t:Fixity">Fixity</a>] -&gt; <a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a> -&gt; <a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a> <a href="src/HSE-All.html#parseFlagsAddFixities" class="link">Source</a> <a href="#v:parseFlagsAddFixities" class="selflink">#</a></p><div class="doc"><p>Given some fixities, add them to the existing fixities in <code><a href="Language-Haskell-HLint3.html#t:ParseFlags">ParseFlags</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ParseError" class="def">ParseError</a> <a href="src/HSE-All.html#ParseError" class="link">Source</a> <a href="#t:ParseError" class="selflink">#</a></p><div class="doc"><p>A parse error from <code><a href="Language-Haskell-HLint3.html#v:parseModuleEx">parseModuleEx</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ParseError" class="def">ParseError</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:parseErrorLocation" class="def">parseErrorLocation</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-SrcLoc.html#t:SrcLoc">SrcLoc</a></dfn><div class="doc"><p>Location of the error.</p></div></li><li><dfn class="src"><a id="v:parseErrorMessage" class="def">parseErrorMessage</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Message about the cause of the error.</p></div></li><li><dfn class="src"><a id="v:parseErrorContents" class="def">parseErrorContents</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></dfn><div class="doc"><p>Snippet of several lines (typically 5) including a <code>&gt;</code> character pointing at the faulty line.</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ParseFlags" class="def">ParseFlags</a> <a href="src/HSE-All.html#ParseFlags" class="link">Source</a> <a href="#t:ParseFlags" class="selflink">#</a></p><div class="doc"><p>Created with <code><a href="Language-Haskell-HLint3.html#v:defaultParseFlags">defaultParseFlags</a></code>, used by <code><a href="Language-Haskell-HLint3.html#v:parseModuleEx">parseModuleEx</a></code>.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:ParseFlags" class="def">ParseFlags</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:cppFlags" class="def">cppFlags</a> :: <a href="Language-Haskell-HLint3.html#t:CppFlags">CppFlags</a></dfn><div class="doc"><p>How the file is preprocessed (defaults to <code><a href="Language-Haskell-HLint3.html#v:NoCpp">NoCpp</a></code>).</p></div></li><li><dfn class="src"><a id="v:hseFlags" class="def">hseFlags</a> :: <a href="file:///usr/share/doc/libghc-src-exts-doc/html/Language-Haskell-Exts-Parser.html#t:ParseMode">ParseMode</a></dfn><div class="doc"><p>How the file is parsed (defaults to all fixities in the <code>base</code> package and most non-conflicting extensions).</p></div></li></ul></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:CppFlags" class="def">CppFlags</a> <a href="src/HSE-All.html#CppFlags" class="link">Source</a> <a href="#t:CppFlags" class="selflink">#</a></p><div class="doc"><p>What C pre processor should be used.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoCpp" class="def">NoCpp</a></td><td class="doc"><p>No pre processing is done.</p></td></tr><tr><td class="src"><a id="v:CppSimple" class="def">CppSimple</a></td><td class="doc"><p>Lines prefixed with <code>#</code> are stripped.</p></td></tr><tr><td class="src"><a id="v:Cpphs" class="def">Cpphs</a> <a href="file:///usr/share/doc/libghc-cpphs-doc/html/Language-Preprocessor-Cpphs.html#t:CpphsOptions">CpphsOptions</a></td><td class="doc"><p>The <code>cpphs</code> library is used.</p></td></tr></table></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>