git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Update comments & more hlint
commitb120af74c689e491911909532172c5b315b5f86e authorGary Burgess <gary.burgess@gmail.com> dateSat 15 Nov 2014, 16:25 (12 years ago) parent5860f1e
4 files changed+1506−8
report.html+1498 src/Language/PureScript/TypeChecker/Rows.hs+2−2 src/Language/PureScript/TypeChecker/Skolems.hs+2−2 src/Language/PureScript/TypeChecker/Subsumption.hs+4−4
report.htmlnew file+1498
@@ -0,0 +1,1498 @@
1+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
3+<head>
4+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
5+<title>HLint Report</title>
6+<script type='text/javascript'>
7+
8+/* == Algorithm for show/unshow ==
9+ Each hint/file is given a number, hint# or file#
10+ When we say showOnly with a class name we add the rules to
11+ the css #content div {display:none}, #content div.className {display:block}
12+ When going back to showAll we remove these results
13+*/
14+
15+// CSS MANIPULATION //
16+
17+function deleteRules(n)
18+{
19+ var css = document.styleSheets[0];
20+ for (var i = 0; i < n; i++)
21+ css.deleteRule(css.cssRules.length-1);
22+}
23+
24+function insertRule(s)
25+{
26+ var css = document.styleSheets[0];
27+ css.insertRule(s, css.cssRules.length);
28+}
29+
30+// SHOW/HIDE LOGIC //
31+
32+var last = "";
33+
34+function show(id)
35+{
36+ if (id == last) return;
37+ if (id == "")
38+ {
39+ deleteRules(3);
40+ insertRule(".all {font-weight: bold;}");
41+ }
42+ else
43+ {
44+ if (last == "")
45+ {
46+ deleteRules(1);
47+ insertRule("#content div {display:none;}");
48+ }
49+ else
50+ {
51+ deleteRules(2);
52+ }
53+ insertRule("#content div." + id + " {display:block;}");
54+ insertRule("#" + id + "{font-weight:bold;}");
55+ }
56+
57+ last = id;
58+}
59+
60+</script>
61+<style type="text/css">
62+/* These rules are manipulated by the script.
63+ The commented form is how it looks with an id selected */
64+
65+.all {font-weight: bold;} /* #content div {display:none;} */
66+ /* #content div.id {display:block;} */
67+ /* #id {font-weight: bold;} */
68+
69+</style>
70+<style type="text/css">
71+/* See http://www.webreference.com/programming/css_frames/ */
72+body {
73+ margin:0;
74+ border:0;
75+ padding:0;
76+ height:100%;
77+ max-height:100%;
78+ font-family: sans-serif;
79+ font-size:76%;
80+ overflow: hidden;
81+}
82+
83+#leftbar {
84+ position:absolute;
85+ top:0px;
86+ left:0px;
87+ width: 215px;
88+ bottom: 0px;
89+ overflow:auto;
90+ background:rgb(202,223,255);
91+ margin: 10px;
92+ padding-top: 0;
93+ padding-left: 7px;
94+ padding-right: 7px;
95+ -moz-border-radius: 5px;
96+ -webkit-border-radius: 5px;
97+
98+ display:none; /* Override if script present */
99+}
100+
101+#content {
102+ position:absolute;
103+ top:0;
104+ bottom:0;
105+ right:0;
106+ overflow:auto;
107+ padding-bottom: 15px;
108+ padding-right: 7px;
109+
110+ left:10px; /* Override if script present */
111+}
112+
113+#leftbar ul {margin-top: 0px; padding-left: 15px;}
114+#leftbar p {margin-bottom: 0px;}
115+.note {color: gray; font-size: smaller;}
116+
117+pre {
118+ font-family: "lucida console", monospace;
119+ padding-left: 15px;
120+ margin: 2px;
121+}
122+
123+#content div {
124+ margin-bottom: 10px;
125+ margin-right: 10px;
126+ padding-top: 4px;
127+ border-top: 1px solid #ccc;
128+}
129+
130+.script #content {left:250px;}
131+.script #leftbar {display: block;}
132+
133+/* From HsColour */
134+.hs-keyglyph, .hs-layout {color: red;}
135+.hs-keyword {color: blue;}
136+.hs-comment, .hs-comment a {color: green;}
137+.hs-str, .hs-chr {color: teal;}
138+</style>
139+</head>
140+<body>
141+
142+<script type='text/javascript'>
143+document.body.className = "script";
144+</script>
145+
146+<div id="leftbar" valign="top" style="min-width:200px">
147+
148+<p><a class="all" href="javascript:show('')">All hints</a></p>
149+<ul>
150+<li><a id="hint0" href="javascript:show('hint0')">Error: Redundant bracket (1)</a></li>
151+<li><a id="hint1" href="javascript:show('hint1')">Error: Redundant do (4)</a></li>
152+<li><a id="hint2" href="javascript:show('hint2')">Error: Too strict if (1)</a></li>
153+<li><a id="hint3" href="javascript:show('hint3')">Error: Unused LANGUAGE pragma (1)</a></li>
154+<li><a id="hint4" href="javascript:show('hint4')">Error: Use break (1)</a></li>
155+<li><a id="hint5" href="javascript:show('hint5')">Error: Use concatMap (1)</a></li>
156+<li><a id="hint6" href="javascript:show('hint6')">Error: Use unless (1)</a></li>
157+<li><a id="hint7" href="javascript:show('hint7')">Warning: Reduce duplication (5)</a></li>
158+<li><a id="hint8" href="javascript:show('hint8')">Warning: Redundant $ (8)</a></li>
159+<li><a id="hint9" href="javascript:show('hint9')">Warning: Redundant bracket (41)</a></li>
160+<li><a id="hint10" href="javascript:show('hint10')">Warning: Use &lt;$&gt; (29)</a></li>
161+<li><a id="hint11" href="javascript:show('hint11')">Warning: Use String (1)</a></li>
162+<li><a id="hint12" href="javascript:show('hint12')">Warning: Use fromMaybe (2)</a></li>
163+<li><a id="hint13" href="javascript:show('hint13')">Warning: Use if (1)</a></li>
164+<li><a id="hint14" href="javascript:show('hint14')">Warning: Use list literal pattern (1)</a></li>
165+<li><a id="hint15" href="javascript:show('hint15')">Warning: Use record patterns (4)</a></li>
166+<li><a id="hint16" href="javascript:show('hint16')">Warning: Use section (1)</a></li>
167+</ul>
168+
169+<p><a class="all" href="javascript:show('')">All files</a></p>
170+<ul>
171+<li><a id="file0" href="javascript:show('file0')">src/Language/PureScript.hs (3)</a></li>
172+<li><a id="file1" href="javascript:show('file1')">src/Language/PureScript/CodeGen/Externs.hs (2)</a></li>
173+<li><a id="file2" href="javascript:show('file2')">src/Language/PureScript/CodeGen/JS.hs (8)</a></li>
174+<li><a id="file3" href="javascript:show('file3')">src/Language/PureScript/Declarations.hs (33)</a></li>
175+<li><a id="file4" href="javascript:show('file4')">src/Language/PureScript/Errors.hs (1)</a></li>
176+<li><a id="file5" href="javascript:show('file5')">src/Language/PureScript/Optimizer/TCO.hs (1)</a></li>
177+<li><a id="file6" href="javascript:show('file6')">src/Language/PureScript/Optimizer/Unused.hs (1)</a></li>
178+<li><a id="file7" href="javascript:show('file7')">src/Language/PureScript/Parser/Common.hs (2)</a></li>
179+<li><a id="file8" href="javascript:show('file8')">src/Language/PureScript/Parser/Declarations.hs (2)</a></li>
180+<li><a id="file9" href="javascript:show('file9')">src/Language/PureScript/Pretty/JS.hs (13)</a></li>
181+<li><a id="file10" href="javascript:show('file10')">src/Language/PureScript/Pretty/Values.hs (17)</a></li>
182+<li><a id="file11" href="javascript:show('file11')">src/Language/PureScript/Renamer.hs (1)</a></li>
183+<li><a id="file12" href="javascript:show('file12')">src/Language/PureScript/Sugar/DoNotation.hs (2)</a></li>
184+<li><a id="file13" href="javascript:show('file13')">src/Language/PureScript/Sugar/TypeClasses.hs (2)</a></li>
185+<li><a id="file14" href="javascript:show('file14')">src/Language/PureScript/Sugar/TypeDeclarations.hs (1)</a></li>
186+<li><a id="file15" href="javascript:show('file15')">src/Language/PureScript/TypeChecker/Kinds.hs (4)</a></li>
187+<li><a id="file16" href="javascript:show('file16')">src/Language/PureScript/TypeChecker/Monad.hs (1)</a></li>
188+<li><a id="file17" href="javascript:show('file17')">src/Language/PureScript/TypeChecker/Types.hs (8)</a></li>
189+<li><a id="file18" href="javascript:show('file18')">src/Language/PureScript/Types.hs (1)</a></li>
190+</ul>
191+
192+</div>
193+<div id="content" valign="top" width="100%">
194+<p>
195+ Report generated by <a href="http://community.haskell.org/~ndm/hlint/">HLint</a>
196+v1.9.4
197+ - a tool to suggest improvements to your Haskell code.
198+</p>
199+
200+<div class="hint9 file0">
201+src/Language/PureScript.hs:81:49: Warning: Redundant bracket<br/>
202+Found<br/>
203+<pre><span class='hs-keyword'>if</span> <span class='hs-varid'>optionsNoPrelude</span> <span class='hs-varid'>opts</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>ms</span> <span class='hs-keyword'>else</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>importPrelude</span> <span class='hs-varid'>ms</span><span class='hs-layout'>)</span></pre>
204+Why not<br/>
205+<pre><span class='hs-keyword'>if</span> <span class='hs-varid'>optionsNoPrelude</span> <span class='hs-varid'>opts</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>ms</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>map</span> <span class='hs-varid'>importPrelude</span> <span class='hs-varid'>ms</span></pre>
206+
207+</div>
208+
209+<div class="hint9 file0">
210+src/Language/PureScript.hs:155:65: Warning: Redundant bracket<br/>
211+Found<br/>
212+<pre><span class='hs-keyword'>if</span> <span class='hs-varid'>optionsNoPrelude</span> <span class='hs-varid'>opts</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>map</span> <span class='hs-varid'>snd</span> <span class='hs-varid'>ms</span> <span class='hs-keyword'>else</span>
213+ <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>importPrelude</span> <span class='hs-varop'>.</span> <span class='hs-varid'>snd</span><span class='hs-layout'>)</span> <span class='hs-varid'>ms</span><span class='hs-layout'>)</span></pre>
214+Why not<br/>
215+<pre><span class='hs-keyword'>if</span> <span class='hs-varid'>optionsNoPrelude</span> <span class='hs-varid'>opts</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>map</span> <span class='hs-varid'>snd</span> <span class='hs-varid'>ms</span> <span class='hs-keyword'>else</span>
216+ <span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>importPrelude</span> <span class='hs-varop'>.</span> <span class='hs-varid'>snd</span><span class='hs-layout'>)</span> <span class='hs-varid'>ms</span></pre>
217+
218+</div>
219+
220+<div class="hint7 file0">
221+src/Language/PureScript.hs:158:9: Warning: Reduce duplication<br/>
222+Found<br/>
223+<pre><span class='hs-definition'>filePath</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>runModuleName</span> <span class='hs-varid'>moduleName'</span>
224+<span class='hs-definition'>jsFile</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>outputDir</span> <span class='hs-varop'>&lt;/&gt;</span> <span class='hs-varid'>filePath</span> <span class='hs-varop'>&lt;/&gt;</span> <span class='hs-str'>"index.js"</span>
225+<span class='hs-definition'>externsFile</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>outputDir</span> <span class='hs-varop'>&lt;/&gt;</span> <span class='hs-varid'>filePath</span> <span class='hs-varop'>&lt;/&gt;</span> <span class='hs-str'>"externs.purs"</span>
226+</pre>
227+Why not<br/>
228+<pre><span class='hs-conid'>Combine</span> <span class='hs-varid'>with</span> <span class='hs-varid'>src</span><span class='hs-varop'>/</span><span class='hs-conid'>Language</span><span class='hs-varop'>/</span><span class='hs-conid'>PureScript</span><span class='hs-varop'>.</span><span class='hs-varid'>hs</span><span class='hs-conop'>:</span><span class='hs-num'>187</span><span class='hs-conop'>:</span><span class='hs-num'>9</span></pre>
229+
230+</div>
231+
232+<div class="hint9 file3">
233+src/Language/PureScript/Declarations.hs:69:13: Warning: Redundant bracket<br/>
234+Found<br/>
235+<pre><span class='hs-layout'>(</span><span class='hs-varid'>sourceName</span> <span class='hs-varid'>sp</span><span class='hs-layout'>)</span> <span class='hs-varop'>++</span>
236+ <span class='hs-str'>" line "</span> <span class='hs-varop'>++</span>
237+ <span class='hs-varid'>show</span> <span class='hs-layout'>(</span><span class='hs-varid'>sourcePosLine</span> <span class='hs-varid'>sp</span><span class='hs-layout'>)</span> <span class='hs-varop'>++</span> <span class='hs-str'>", column "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-layout'>(</span><span class='hs-varid'>sourcePosColumn</span> <span class='hs-varid'>sp</span><span class='hs-layout'>)</span></pre>
238+Why not<br/>
239+<pre><span class='hs-definition'>sourceName</span> <span class='hs-varid'>sp</span> <span class='hs-varop'>++</span>
240+ <span class='hs-str'>" line "</span> <span class='hs-varop'>++</span>
241+ <span class='hs-varid'>show</span> <span class='hs-layout'>(</span><span class='hs-varid'>sourcePosLine</span> <span class='hs-varid'>sp</span><span class='hs-layout'>)</span> <span class='hs-varop'>++</span> <span class='hs-str'>", column "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-layout'>(</span><span class='hs-varid'>sourcePosColumn</span> <span class='hs-varid'>sp</span><span class='hs-layout'>)</span></pre>
242+
243+</div>
244+
245+<div class="hint9 file3">
246+src/Language/PureScript/Declarations.hs:605:35: Warning: Redundant bracket<br/>
247+Found<br/>
248+<pre><span class='hs-conid'>BinaryNoParens</span> <span class='hs-varid'>op</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>g'</span> <span class='hs-varid'>v1</span><span class='hs-layout'>)</span></pre>
249+Why not<br/>
250+<pre><span class='hs-conid'>BinaryNoParens</span> <span class='hs-varid'>op</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>g'</span> <span class='hs-varid'>v1</span></pre>
251+
252+</div>
253+
254+<div class="hint9 file3">
255+src/Language/PureScript/Declarations.hs:605:35: Warning: Redundant bracket<br/>
256+Found<br/>
257+<pre><span class='hs-conid'>BinaryNoParens</span> <span class='hs-varid'>op</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>g'</span> <span class='hs-varid'>v1</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;*&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>g'</span> <span class='hs-varid'>v2</span><span class='hs-layout'>)</span></pre>
258+Why not<br/>
259+<pre><span class='hs-conid'>BinaryNoParens</span> <span class='hs-varid'>op</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>g'</span> <span class='hs-varid'>v1</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;*&gt;</span> <span class='hs-varid'>g'</span> <span class='hs-varid'>v2</span></pre>
260+
261+</div>
262+
263+<div class="hint9 file3">
264+src/Language/PureScript/Declarations.hs:669:22: Warning: Redundant bracket<br/>
265+Found<br/>
266+<pre><span class='hs-layout'>(</span><span class='hs-varid'>foldl</span> <span class='hs-layout'>(</span><span class='hs-varop'>&lt;&gt;</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>g</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>f'</span> <span class='hs-varid'>ds</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;&gt;</span> <span class='hs-varid'>g'</span> <span class='hs-varid'>v1</span></pre>
267+Why not<br/>
268+<pre><span class='hs-definition'>foldl</span> <span class='hs-layout'>(</span><span class='hs-varop'>&lt;&gt;</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>g</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>f'</span> <span class='hs-varid'>ds</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;&gt;</span> <span class='hs-varid'>g'</span> <span class='hs-varid'>v1</span></pre>
269+
270+</div>
271+
272+<div class="hint9 file3">
273+src/Language/PureScript/Declarations.hs:709:82: Warning: Redundant bracket<br/>
274+Found<br/>
275+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>val</span></pre>
276+Why not<br/>
277+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>val</span></pre>
278+
279+</div>
280+
281+<div class="hint9 file3">
282+src/Language/PureScript/Declarations.hs:711:75: Warning: Redundant bracket<br/>
283+Found<br/>
284+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>val</span></pre>
285+Why not<br/>
286+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>val</span></pre>
287+
288+</div>
289+
290+<div class="hint9 file3">
291+src/Language/PureScript/Declarations.hs:714:39: Warning: Redundant bracket<br/>
292+Found<br/>
293+<pre><span class='hs-layout'>(</span><span class='hs-varid'>f''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>d1</span></pre>
294+Why not<br/>
295+<pre><span class='hs-definition'>f''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>d1</span></pre>
296+
297+</div>
298+
299+<div class="hint9 file3">
300+src/Language/PureScript/Declarations.hs:719:26: Warning: Redundant bracket<br/>
301+Found<br/>
302+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
303+Why not<br/>
304+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
305+
306+</div>
307+
308+<div class="hint9 file3">
309+src/Language/PureScript/Declarations.hs:720:35: Warning: Redundant bracket<br/>
310+Found<br/>
311+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
312+Why not<br/>
313+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
314+
315+</div>
316+
317+<div class="hint9 file3">
318+src/Language/PureScript/Declarations.hs:720:49: Warning: Redundant bracket<br/>
319+Found<br/>
320+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v2</span></pre>
321+Why not<br/>
322+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v2</span></pre>
323+
324+</div>
325+
326+<div class="hint9 file3">
327+src/Language/PureScript/Declarations.hs:721:22: Warning: Redundant bracket<br/>
328+Found<br/>
329+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
330+Why not<br/>
331+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
332+
333+</div>
334+
335+<div class="hint9 file3">
336+src/Language/PureScript/Declarations.hs:724:51: Warning: Redundant bracket<br/>
337+Found<br/>
338+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
339+Why not<br/>
340+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
341+
342+</div>
343+
344+<div class="hint9 file3">
345+src/Language/PureScript/Declarations.hs:725:26: Warning: Redundant bracket<br/>
346+Found<br/>
347+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
348+Why not<br/>
349+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
350+
351+</div>
352+
353+<div class="hint9 file3">
354+src/Language/PureScript/Declarations.hs:726:44: Warning: Redundant bracket<br/>
355+Found<br/>
356+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>obj</span></pre>
357+Why not<br/>
358+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>obj</span></pre>
359+
360+</div>
361+
362+<div class="hint9 file3">
363+src/Language/PureScript/Declarations.hs:727:21: Warning: Redundant bracket<br/>
364+Found<br/>
365+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
366+Why not<br/>
367+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
368+
369+</div>
370+
371+<div class="hint9 file3">
372+src/Language/PureScript/Declarations.hs:728:22: Warning: Redundant bracket<br/>
373+Found<br/>
374+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
375+Why not<br/>
376+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
377+
378+</div>
379+
380+<div class="hint9 file3">
381+src/Language/PureScript/Declarations.hs:728:36: Warning: Redundant bracket<br/>
382+Found<br/>
383+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v2</span></pre>
384+Why not<br/>
385+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v2</span></pre>
386+
387+</div>
388+
389+<div class="hint9 file3">
390+src/Language/PureScript/Declarations.hs:729:32: Warning: Redundant bracket<br/>
391+Found<br/>
392+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
393+Why not<br/>
394+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
395+
396+</div>
397+
398+<div class="hint9 file3">
399+src/Language/PureScript/Declarations.hs:729:46: Warning: Redundant bracket<br/>
400+Found<br/>
401+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v2</span></pre>
402+Why not<br/>
403+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v2</span></pre>
404+
405+</div>
406+
407+<div class="hint9 file3">
408+src/Language/PureScript/Declarations.hs:729:60: Warning: Redundant bracket<br/>
409+Found<br/>
410+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v3</span></pre>
411+Why not<br/>
412+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v3</span></pre>
413+
414+</div>
415+
416+<div class="hint9 file3">
417+src/Language/PureScript/Declarations.hs:731:30: Warning: Redundant bracket<br/>
418+Found<br/>
419+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
420+Why not<br/>
421+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
422+
423+</div>
424+
425+<div class="hint9 file3">
426+src/Language/PureScript/Declarations.hs:732:22: Warning: Redundant bracket<br/>
427+Found<br/>
428+<pre><span class='hs-layout'>(</span><span class='hs-varid'>foldl</span> <span class='hs-layout'>(</span><span class='hs-varop'>&lt;&gt;</span><span class='hs-layout'>)</span> <span class='hs-varid'>r0</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>f''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>ds</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
429+Why not<br/>
430+<pre><span class='hs-definition'>foldl</span> <span class='hs-layout'>(</span><span class='hs-varop'>&lt;&gt;</span><span class='hs-layout'>)</span> <span class='hs-varid'>r0</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>f''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>ds</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
431+
432+</div>
433+
434+<div class="hint9 file3">
435+src/Language/PureScript/Declarations.hs:732:58: Warning: Redundant bracket<br/>
436+Found<br/>
437+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
438+Why not<br/>
439+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
440+
441+</div>
442+
443+<div class="hint9 file3">
444+src/Language/PureScript/Declarations.hs:734:33: Warning: Redundant bracket<br/>
445+Found<br/>
446+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v1</span></pre>
447+Why not<br/>
448+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v1</span></pre>
449+
450+</div>
451+
452+<div class="hint9 file3">
453+src/Language/PureScript/Declarations.hs:742:29: Warning: Redundant bracket<br/>
454+Found<br/>
455+<pre><span class='hs-layout'>(</span><span class='hs-varid'>h''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>b1</span></pre>
456+Why not<br/>
457+<pre><span class='hs-definition'>h''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>b1</span></pre>
458+
459+</div>
460+
461+<div class="hint9 file3">
462+src/Language/PureScript/Declarations.hs:742:43: Warning: Redundant bracket<br/>
463+Found<br/>
464+<pre><span class='hs-layout'>(</span><span class='hs-varid'>h''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>b2</span></pre>
465+Why not<br/>
466+<pre><span class='hs-definition'>h''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>b2</span></pre>
467+
468+</div>
469+
470+<div class="hint9 file3">
471+src/Language/PureScript/Declarations.hs:743:29: Warning: Redundant bracket<br/>
472+Found<br/>
473+<pre><span class='hs-layout'>(</span><span class='hs-varid'>h''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>b1</span></pre>
474+Why not<br/>
475+<pre><span class='hs-definition'>h''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>b1</span></pre>
476+
477+</div>
478+
479+<div class="hint9 file3">
480+src/Language/PureScript/Declarations.hs:744:34: Warning: Redundant bracket<br/>
481+Found<br/>
482+<pre><span class='hs-layout'>(</span><span class='hs-varid'>h''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>b1</span></pre>
483+Why not<br/>
484+<pre><span class='hs-definition'>h''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>b1</span></pre>
485+
486+</div>
487+
488+<div class="hint9 file3">
489+src/Language/PureScript/Declarations.hs:754:30: Warning: Redundant bracket<br/>
490+Found<br/>
491+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v</span></pre>
492+Why not<br/>
493+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v</span></pre>
494+
495+</div>
496+
497+<div class="hint9 file3">
498+src/Language/PureScript/Declarations.hs:755:32: Warning: Redundant bracket<br/>
499+Found<br/>
500+<pre><span class='hs-layout'>(</span><span class='hs-varid'>h''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>b</span></pre>
501+Why not<br/>
502+<pre><span class='hs-definition'>h''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>b</span></pre>
503+
504+</div>
505+
506+<div class="hint9 file3">
507+src/Language/PureScript/Declarations.hs:755:45: Warning: Redundant bracket<br/>
508+Found<br/>
509+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v</span></pre>
510+Why not<br/>
511+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v</span></pre>
512+
513+</div>
514+
515+<div class="hint9 file3">
516+src/Language/PureScript/Declarations.hs:757:45: Warning: Redundant bracket<br/>
517+Found<br/>
518+<pre><span class='hs-layout'>(</span><span class='hs-varid'>j''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>e1</span></pre>
519+Why not<br/>
520+<pre><span class='hs-definition'>j''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>e1</span></pre>
521+
522+</div>
523+
524+<div class="hint9 file3">
525+src/Language/PureScript/Declarations.hs:790:96: Warning: Redundant bracket<br/>
526+Found<br/>
527+<pre><span class='hs-layout'>(</span><span class='hs-varid'>g''</span> <span class='hs-varid'>s</span><span class='hs-layout'>)</span> <span class='hs-varid'>v</span></pre>
528+Why not<br/>
529+<pre><span class='hs-definition'>g''</span> <span class='hs-varid'>s</span> <span class='hs-varid'>v</span></pre>
530+
531+</div>
532+
533+<div class="hint3 file4">
534+src/Language/PureScript/Errors.hs:15:1: Error: Unused LANGUAGE pragma<br/>
535+Found<br/>
536+<pre><span class='hs-comment'>{-# LANGUAGE GeneralizedNewtypeDeriving, FlexibleContexts #-}</span></pre>
537+Why not<br/>
538+<pre><span class='hs-comment'>{-# LANGUAGE FlexibleContexts #-}</span></pre>
539+
540+</div>
541+
542+<div class="hint13 file11">
543+src/Language/PureScript/Renamer.hs:77:15: Warning: Use if<br/>
544+Found<br/>
545+<pre><span class='hs-keyword'>case</span> <span class='hs-varid'>name</span> <span class='hs-varop'>`</span><span class='hs-conid'>S</span><span class='hs-varop'>.</span><span class='hs-varid'>member</span><span class='hs-varop'>`</span> <span class='hs-varid'>rsUsedNames</span> <span class='hs-varid'>scope</span> <span class='hs-keyword'>of</span>
546+ <span class='hs-conid'>True</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>let</span> <span class='hs-varid'>newNames</span>
547+ <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Ident</span> <span class='hs-layout'>(</span><span class='hs-varid'>runIdent</span> <span class='hs-varid'>name</span> <span class='hs-varop'>++</span> <span class='hs-str'>"_"</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-layout'>(</span><span class='hs-varid'>i</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-keyglyph'>[</span><span class='hs-num'>1</span> <span class='hs-keyglyph'>..</span><span class='hs-keyglyph'>]</span><span class='hs-keyglyph'>]</span>
548+ <span class='hs-conid'>Just</span> <span class='hs-varid'>newName</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>find</span> <span class='hs-layout'>(</span><span class='hs-varop'>`</span><span class='hs-conid'>S</span><span class='hs-varop'>.</span><span class='hs-varid'>notMember</span><span class='hs-varop'>`</span> <span class='hs-varid'>rsUsedNames</span> <span class='hs-varid'>scope</span><span class='hs-layout'>)</span> <span class='hs-varid'>newNames</span>
549+ <span class='hs-keyword'>in</span> <span class='hs-varid'>newName</span>
550+ <span class='hs-conid'>False</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>name</span></pre>
551+Why not<br/>
552+<pre><span class='hs-keyword'>if</span> <span class='hs-varid'>name</span> <span class='hs-varop'>`</span><span class='hs-conid'>S</span><span class='hs-varop'>.</span><span class='hs-varid'>member</span><span class='hs-varop'>`</span> <span class='hs-varid'>rsUsedNames</span> <span class='hs-varid'>scope</span> <span class='hs-keyword'>then</span>
553+ <span class='hs-layout'>(</span><span class='hs-keyword'>let</span> <span class='hs-varid'>newNames</span>
554+ <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Ident</span> <span class='hs-layout'>(</span><span class='hs-varid'>runIdent</span> <span class='hs-varid'>name</span> <span class='hs-varop'>++</span> <span class='hs-str'>"_"</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-layout'>(</span><span class='hs-varid'>i</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-keyglyph'>[</span><span class='hs-num'>1</span> <span class='hs-keyglyph'>..</span><span class='hs-keyglyph'>]</span><span class='hs-keyglyph'>]</span>
555+ <span class='hs-conid'>Just</span> <span class='hs-varid'>newName</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>find</span> <span class='hs-layout'>(</span><span class='hs-varop'>`</span><span class='hs-conid'>S</span><span class='hs-varop'>.</span><span class='hs-varid'>notMember</span><span class='hs-varop'>`</span> <span class='hs-varid'>rsUsedNames</span> <span class='hs-varid'>scope</span><span class='hs-layout'>)</span> <span class='hs-varid'>newNames</span>
556+ <span class='hs-keyword'>in</span> <span class='hs-varid'>newName</span><span class='hs-layout'>)</span>
557+ <span class='hs-keyword'>else</span> <span class='hs-varid'>name</span></pre>
558+
559+</div>
560+
561+<div class="hint12 file18">
562+src/Language/PureScript/Types.hs:146:5: Warning: Use fromMaybe<br/>
563+Found<br/>
564+<pre><span class='hs-keyword'>case</span> <span class='hs-varid'>v</span> <span class='hs-varop'>`lookup`</span> <span class='hs-varid'>m</span> <span class='hs-keyword'>of</span>
565+ <span class='hs-conid'>Just</span> <span class='hs-varid'>r</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>r</span>
566+ <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TypeVar</span> <span class='hs-varid'>v</span></pre>
567+Why not<br/>
568+<pre><span class='hs-definition'>fromMaybe</span> <span class='hs-layout'>(</span><span class='hs-conid'>TypeVar</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>v</span> <span class='hs-varop'>`lookup`</span> <span class='hs-varid'>m</span><span class='hs-layout'>)</span></pre>
569+
570+</div>
571+
572+<div class="hint1 file1">
573+src/Language/PureScript/CodeGen/Externs.hs:56:38: Error: Redundant do<br/>
574+Found<br/>
575+<pre><span class='hs-keyword'>do</span> <span class='hs-keyword'>case</span> <span class='hs-conid'>Qualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>moduleName</span><span class='hs-layout'>)</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>`</span><span class='hs-conid'>M</span><span class='hs-varop'>.</span><span class='hs-varid'>lookup</span><span class='hs-varop'>`</span> <span class='hs-varid'>types</span> <span class='hs-varid'>env</span> <span class='hs-keyword'>of</span>
576+ <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>error</span> <span class='hs-varop'>$</span> <span class='hs-varid'>show</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>++</span> <span class='hs-str'>" has no kind in exportToPs"</span>
577+ <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>kind</span><span class='hs-layout'>,</span> <span class='hs-conid'>ExternData</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>tell</span>
578+ <span class='hs-keyglyph'>[</span><span class='hs-str'>"foreign import data "</span> <span class='hs-varop'>++</span>
579+ <span class='hs-varid'>show</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>++</span> <span class='hs-str'>" :: "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>prettyPrintKind</span> <span class='hs-varid'>kind</span><span class='hs-keyglyph'>]</span>
580+ <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-keyword'>_</span><span class='hs-layout'>,</span> <span class='hs-conid'>DataType</span> <span class='hs-varid'>args</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span> <span class='hs-keyword'>let</span> <span class='hs-varid'>dctors'</span>
581+ <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromMaybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>fst</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span> <span class='hs-varid'>dctors</span>
582+ <span class='hs-varid'>printDctor</span> <span class='hs-varid'>dctor</span>
583+ <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>dctor</span> <span class='hs-varop'>`lookup`</span> <span class='hs-varid'>tys</span> <span class='hs-keyword'>of</span>
584+ <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Nothing</span>
585+ <span class='hs-conid'>Just</span> <span class='hs-varid'>tyArgs</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Just</span> <span class='hs-varop'>$</span>
586+ <span class='hs-varid'>show</span> <span class='hs-varid'>dctor</span> <span class='hs-varop'>++</span>
587+ <span class='hs-str'>" "</span> <span class='hs-varop'>++</span>
588+ <span class='hs-varid'>unwords</span>
589+ <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>prettyPrintTypeAtom</span>
590+ <span class='hs-varid'>tyArgs</span><span class='hs-layout'>)</span>
591+ <span class='hs-keyword'>let</span> <span class='hs-varid'>dtype</span>
592+ <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span>
593+ <span class='hs-varid'>length</span> <span class='hs-varid'>dctors'</span> <span class='hs-varop'>==</span> <span class='hs-num'>1</span> <span class='hs-varop'>&amp;&amp;</span>
594+ <span class='hs-varid'>isNewtypeConstructor</span> <span class='hs-varid'>env</span>
595+ <span class='hs-layout'>(</span><span class='hs-conid'>Qualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>moduleName</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>head</span> <span class='hs-varid'>dctors'</span><span class='hs-layout'>)</span>
596+ <span class='hs-keyword'>then</span> <span class='hs-str'>"newtype"</span> <span class='hs-keyword'>else</span> <span class='hs-str'>"data"</span>
597+ <span class='hs-varid'>typeName</span>
598+ <span class='hs-keyglyph'>=</span> <span class='hs-varid'>prettyPrintType</span> <span class='hs-varop'>$</span>
599+ <span class='hs-varid'>foldl</span> <span class='hs-conid'>TypeApp</span>
600+ <span class='hs-layout'>(</span><span class='hs-conid'>TypeConstructor</span> <span class='hs-layout'>(</span><span class='hs-conid'>Qualified</span> <span class='hs-conid'>Nothing</span> <span class='hs-varid'>pn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
601+ <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>toTypeVar</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span>
602+ <span class='hs-varid'>tell</span>
603+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>dtype</span> <span class='hs-varop'>++</span>
604+ <span class='hs-str'>" "</span> <span class='hs-varop'>++</span>
605+ <span class='hs-varid'>typeName</span> <span class='hs-varop'>++</span>
606+ <span class='hs-layout'>(</span><span class='hs-keyword'>if</span> <span class='hs-varid'>null</span> <span class='hs-varid'>dctors'</span> <span class='hs-keyword'>then</span> <span class='hs-str'>""</span> <span class='hs-keyword'>else</span>
607+ <span class='hs-str'>" = "</span> <span class='hs-varop'>++</span>
608+ <span class='hs-varid'>intercalate</span> <span class='hs-str'>" | "</span>
609+ <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span> <span class='hs-varid'>printDctor</span> <span class='hs-varid'>dctors'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
610+ <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-keyword'>_</span><span class='hs-layout'>,</span> <span class='hs-conid'>TypeSynonym</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>case</span>
611+ <span class='hs-conid'>Qualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>moduleName</span><span class='hs-layout'>)</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>`</span><span class='hs-conid'>M</span><span class='hs-varop'>.</span><span class='hs-varid'>lookup</span><span class='hs-varop'>`</span> <span class='hs-varid'>typeSynonyms</span> <span class='hs-varid'>env</span> <span class='hs-keyword'>of</span>
612+ <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>error</span> <span class='hs-varop'>$</span>
613+ <span class='hs-varid'>show</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>++</span>
614+ <span class='hs-str'>" has no type synonym info in exportToPs"</span>
615+ <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>args</span><span class='hs-layout'>,</span> <span class='hs-varid'>synTy</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>let</span> <span class='hs-varid'>typeName</span>
616+ <span class='hs-keyglyph'>=</span> <span class='hs-varid'>prettyPrintType</span> <span class='hs-varop'>$</span>
617+ <span class='hs-varid'>foldl</span> <span class='hs-conid'>TypeApp</span>
618+ <span class='hs-layout'>(</span><span class='hs-conid'>TypeConstructor</span>
619+ <span class='hs-layout'>(</span><span class='hs-conid'>Qualified</span> <span class='hs-conid'>Nothing</span> <span class='hs-varid'>pn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
620+ <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>toTypeVar</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span>
621+ <span class='hs-keyword'>in</span>
622+ <span class='hs-varid'>tell</span>
623+ <span class='hs-keyglyph'>[</span><span class='hs-str'>"type "</span> <span class='hs-varop'>++</span>
624+ <span class='hs-varid'>typeName</span> <span class='hs-varop'>++</span>
625+ <span class='hs-str'>" = "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>prettyPrintType</span> <span class='hs-varid'>synTy</span><span class='hs-keyglyph'>]</span>
626+ <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>error</span> <span class='hs-str'>"Invalid input in exportToPs"</span></pre>
627+Why not<br/>
628+<pre><span class='hs-keyword'>case</span> <span class='hs-conid'>Qualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>moduleName</span><span class='hs-layout'>)</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>`</span><span class='hs-conid'>M</span><span class='hs-varop'>.</span><span class='hs-varid'>lookup</span><span class='hs-varop'>`</span> <span class='hs-varid'>types</span> <span class='hs-varid'>env</span> <span class='hs-keyword'>of</span>
629+ <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>error</span> <span class='hs-varop'>$</span> <span class='hs-varid'>show</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>++</span> <span class='hs-str'>" has no kind in exportToPs"</span>
630+ <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>kind</span><span class='hs-layout'>,</span> <span class='hs-conid'>ExternData</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>tell</span>
631+ <span class='hs-keyglyph'>[</span><span class='hs-str'>"foreign import data "</span> <span class='hs-varop'>++</span>
632+ <span class='hs-varid'>show</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>++</span> <span class='hs-str'>" :: "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>prettyPrintKind</span> <span class='hs-varid'>kind</span><span class='hs-keyglyph'>]</span>
633+ <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-keyword'>_</span><span class='hs-layout'>,</span> <span class='hs-conid'>DataType</span> <span class='hs-varid'>args</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span> <span class='hs-keyword'>let</span> <span class='hs-varid'>dctors'</span>
634+ <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromMaybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>fst</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span> <span class='hs-varid'>dctors</span>
635+ <span class='hs-varid'>printDctor</span> <span class='hs-varid'>dctor</span>
636+ <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>dctor</span> <span class='hs-varop'>`lookup`</span> <span class='hs-varid'>tys</span> <span class='hs-keyword'>of</span>
637+ <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Nothing</span>
638+ <span class='hs-conid'>Just</span> <span class='hs-varid'>tyArgs</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Just</span> <span class='hs-varop'>$</span>
639+ <span class='hs-varid'>show</span> <span class='hs-varid'>dctor</span> <span class='hs-varop'>++</span>
640+ <span class='hs-str'>" "</span> <span class='hs-varop'>++</span>
641+ <span class='hs-varid'>unwords</span>
642+ <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>prettyPrintTypeAtom</span>
643+ <span class='hs-varid'>tyArgs</span><span class='hs-layout'>)</span>
644+ <span class='hs-keyword'>let</span> <span class='hs-varid'>dtype</span>
645+ <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span>
646+ <span class='hs-varid'>length</span> <span class='hs-varid'>dctors'</span> <span class='hs-varop'>==</span> <span class='hs-num'>1</span> <span class='hs-varop'>&amp;&amp;</span>
647+ <span class='hs-varid'>isNewtypeConstructor</span> <span class='hs-varid'>env</span>
648+ <span class='hs-layout'>(</span><span class='hs-conid'>Qualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>moduleName</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>head</span> <span class='hs-varid'>dctors'</span><span class='hs-layout'>)</span>
649+ <span class='hs-keyword'>then</span> <span class='hs-str'>"newtype"</span> <span class='hs-keyword'>else</span> <span class='hs-str'>"data"</span>
650+ <span class='hs-varid'>typeName</span>
651+ <span class='hs-keyglyph'>=</span> <span class='hs-varid'>prettyPrintType</span> <span class='hs-varop'>$</span>
652+ <span class='hs-varid'>foldl</span> <span class='hs-conid'>TypeApp</span>
653+ <span class='hs-layout'>(</span><span class='hs-conid'>TypeConstructor</span> <span class='hs-layout'>(</span><span class='hs-conid'>Qualified</span> <span class='hs-conid'>Nothing</span> <span class='hs-varid'>pn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
654+ <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>toTypeVar</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span>
655+ <span class='hs-varid'>tell</span>
656+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>dtype</span> <span class='hs-varop'>++</span>
657+ <span class='hs-str'>" "</span> <span class='hs-varop'>++</span>
658+ <span class='hs-varid'>typeName</span> <span class='hs-varop'>++</span>
659+ <span class='hs-layout'>(</span><span class='hs-keyword'>if</span> <span class='hs-varid'>null</span> <span class='hs-varid'>dctors'</span> <span class='hs-keyword'>then</span> <span class='hs-str'>""</span> <span class='hs-keyword'>else</span>
660+ <span class='hs-str'>" = "</span> <span class='hs-varop'>++</span>
661+ <span class='hs-varid'>intercalate</span> <span class='hs-str'>" | "</span>
662+ <span class='hs-layout'>(</span><span class='hs-varid'>mapMaybe</span> <span class='hs-varid'>printDctor</span> <span class='hs-varid'>dctors'</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
663+ <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-keyword'>_</span><span class='hs-layout'>,</span> <span class='hs-conid'>TypeSynonym</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>case</span>
664+ <span class='hs-conid'>Qualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>moduleName</span><span class='hs-layout'>)</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>`</span><span class='hs-conid'>M</span><span class='hs-varop'>.</span><span class='hs-varid'>lookup</span><span class='hs-varop'>`</span> <span class='hs-varid'>typeSynonyms</span> <span class='hs-varid'>env</span> <span class='hs-keyword'>of</span>
665+ <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>error</span> <span class='hs-varop'>$</span>
666+ <span class='hs-varid'>show</span> <span class='hs-varid'>pn</span> <span class='hs-varop'>++</span> <span class='hs-str'>" has no type synonym info in exportToPs"</span>
667+ <span class='hs-conid'>Just</span> <span class='hs-layout'>(</span><span class='hs-varid'>args</span><span class='hs-layout'>,</span> <span class='hs-varid'>synTy</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>let</span> <span class='hs-varid'>typeName</span>
668+ <span class='hs-keyglyph'>=</span> <span class='hs-varid'>prettyPrintType</span> <span class='hs-varop'>$</span>
669+ <span class='hs-varid'>foldl</span> <span class='hs-conid'>TypeApp</span>
670+ <span class='hs-layout'>(</span><span class='hs-conid'>TypeConstructor</span>
671+ <span class='hs-layout'>(</span><span class='hs-conid'>Qualified</span> <span class='hs-conid'>Nothing</span> <span class='hs-varid'>pn</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
672+ <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>toTypeVar</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span>
673+ <span class='hs-keyword'>in</span>
674+ <span class='hs-varid'>tell</span>
675+ <span class='hs-keyglyph'>[</span><span class='hs-str'>"type "</span> <span class='hs-varop'>++</span>
676+ <span class='hs-varid'>typeName</span> <span class='hs-varop'>++</span>
677+ <span class='hs-str'>" = "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>prettyPrintType</span> <span class='hs-varid'>synTy</span><span class='hs-keyglyph'>]</span>
678+ <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>error</span> <span class='hs-str'>"Invalid input in exportToPs"</span></pre>
679+
680+</div>
681+
682+<div class="hint8 file1">
683+src/Language/PureScript/CodeGen/Externs.hs:100:24: Warning: Redundant $<br/>
684+Found<br/>
685+<pre><span class='hs-definition'>error</span> <span class='hs-varop'>$</span> <span class='hs-str'>"Type class instance has no dictionary in exportToPs"</span></pre>
686+Why not<br/>
687+<pre><span class='hs-definition'>error</span> <span class='hs-str'>"Type class instance has no dictionary in exportToPs"</span></pre>
688+
689+</div>
690+
691+<div class="hint5 file2">
692+src/Language/PureScript/CodeGen/JS.hs:54:19: Error: Use concatMap<br/>
693+Found<br/>
694+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>$</span> <span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varop'>$</span> <span class='hs-varid'>optimize</span> <span class='hs-varid'>opts</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>catMaybes</span> <span class='hs-varid'>jsDecls</span></pre>
695+Why not<br/>
696+<pre><span class='hs-definition'>concatMap</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varop'>$</span> <span class='hs-varid'>optimize</span> <span class='hs-varid'>opts</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>catMaybes</span> <span class='hs-varid'>jsDecls</span><span class='hs-layout'>)</span></pre>
697+
698+</div>
699+
700+<div class="hint9 file2">
701+src/Language/PureScript/CodeGen/JS.hs:104:44: Warning: Redundant bracket<br/>
702+Found<br/>
703+<pre><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>ProperName</span> <span class='hs-varid'>ctor</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span></pre>
704+Why not<br/>
705+<pre><span class='hs-layout'>(</span><span class='hs-conid'>ProperName</span> <span class='hs-varid'>ctor</span><span class='hs-layout'>,</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span></pre>
706+
707+</div>
708+
709+<div class="hint8 file2">
710+src/Language/PureScript/CodeGen/JS.hs:105:12: Warning: Redundant $<br/>
711+Found<br/>
712+<pre><span class='hs-conid'>Just</span> <span class='hs-varop'>$</span>
713+ <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSVariableIntroduction</span> <span class='hs-varid'>ctor</span>
714+ <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varop'>$</span>
715+ <span class='hs-conid'>JSObjectLiteral</span>
716+ <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-str'>"create"</span><span class='hs-layout'>,</span>
717+ <span class='hs-conid'>JSFunction</span> <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>[</span><span class='hs-str'>"value"</span><span class='hs-keyglyph'>]</span>
718+ <span class='hs-layout'>(</span><span class='hs-conid'>JSBlock</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSReturn</span> <span class='hs-varop'>$</span> <span class='hs-conid'>JSVar</span> <span class='hs-str'>"value"</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span></pre>
719+Why not<br/>
720+<pre><span class='hs-conid'>Just</span>
721+ <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSVariableIntroduction</span> <span class='hs-varid'>ctor</span>
722+ <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varop'>$</span>
723+ <span class='hs-conid'>JSObjectLiteral</span>
724+ <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-str'>"create"</span><span class='hs-layout'>,</span>
725+ <span class='hs-conid'>JSFunction</span> <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>[</span><span class='hs-str'>"value"</span><span class='hs-keyglyph'>]</span>
726+ <span class='hs-layout'>(</span><span class='hs-conid'>JSBlock</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSReturn</span> <span class='hs-varop'>$</span> <span class='hs-conid'>JSVar</span> <span class='hs-str'>"value"</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span></pre>
727+
728+</div>
729+
730+<div class="hint1 file2">
731+src/Language/PureScript/CodeGen/JS.hs:111:52: Error: Redundant do<br/>
732+Found<br/>
733+<pre><span class='hs-keyword'>do</span> <span class='hs-varid'>return</span> <span class='hs-varop'>$</span>
734+ <span class='hs-conid'>Just</span> <span class='hs-varop'>$</span>
735+ <span class='hs-varid'>flip</span> <span class='hs-varid'>concatMap</span> <span class='hs-varid'>ctors</span> <span class='hs-varop'>$</span>
736+ <span class='hs-keyglyph'>\</span> <span class='hs-layout'>(</span><span class='hs-varid'>pn</span><span class='hs-keyglyph'>@</span><span class='hs-layout'>(</span><span class='hs-conid'>ProperName</span> <span class='hs-varid'>ctor</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span>
737+ <span class='hs-keyword'>let</span> <span class='hs-varid'>propName</span>
738+ <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>isNullaryConstructor</span> <span class='hs-varid'>e</span> <span class='hs-layout'>(</span><span class='hs-conid'>Qualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>mp</span><span class='hs-layout'>)</span> <span class='hs-varid'>pn</span><span class='hs-layout'>)</span> <span class='hs-keyword'>then</span> <span class='hs-str'>"value"</span>
739+ <span class='hs-keyword'>else</span> <span class='hs-str'>"create"</span>
740+ <span class='hs-keyword'>in</span>
741+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>makeConstructor</span> <span class='hs-varid'>ctor</span> <span class='hs-layout'>(</span><span class='hs-varid'>length</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
742+ <span class='hs-conid'>JSAssignment</span> <span class='hs-layout'>(</span><span class='hs-conid'>JSAccessor</span> <span class='hs-varid'>propName</span> <span class='hs-layout'>(</span><span class='hs-conid'>JSVar</span> <span class='hs-varid'>ctor</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
743+ <span class='hs-layout'>(</span><span class='hs-varid'>go</span> <span class='hs-varid'>pn</span> <span class='hs-num'>0</span> <span class='hs-layout'>(</span><span class='hs-varid'>length</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span></pre>
744+Why not<br/>
745+<pre><span class='hs-definition'>return</span> <span class='hs-varop'>$</span>
746+ <span class='hs-conid'>Just</span> <span class='hs-varop'>$</span>
747+ <span class='hs-varid'>flip</span> <span class='hs-varid'>concatMap</span> <span class='hs-varid'>ctors</span> <span class='hs-varop'>$</span>
748+ <span class='hs-keyglyph'>\</span> <span class='hs-layout'>(</span><span class='hs-varid'>pn</span><span class='hs-keyglyph'>@</span><span class='hs-layout'>(</span><span class='hs-conid'>ProperName</span> <span class='hs-varid'>ctor</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span>
749+ <span class='hs-keyword'>let</span> <span class='hs-varid'>propName</span>
750+ <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>isNullaryConstructor</span> <span class='hs-varid'>e</span> <span class='hs-layout'>(</span><span class='hs-conid'>Qualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varid'>mp</span><span class='hs-layout'>)</span> <span class='hs-varid'>pn</span><span class='hs-layout'>)</span> <span class='hs-keyword'>then</span> <span class='hs-str'>"value"</span>
751+ <span class='hs-keyword'>else</span> <span class='hs-str'>"create"</span>
752+ <span class='hs-keyword'>in</span>
753+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>makeConstructor</span> <span class='hs-varid'>ctor</span> <span class='hs-layout'>(</span><span class='hs-varid'>length</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
754+ <span class='hs-conid'>JSAssignment</span> <span class='hs-layout'>(</span><span class='hs-conid'>JSAccessor</span> <span class='hs-varid'>propName</span> <span class='hs-layout'>(</span><span class='hs-conid'>JSVar</span> <span class='hs-varid'>ctor</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
755+ <span class='hs-layout'>(</span><span class='hs-varid'>go</span> <span class='hs-varid'>pn</span> <span class='hs-num'>0</span> <span class='hs-layout'>(</span><span class='hs-varid'>length</span> <span class='hs-varid'>tys</span><span class='hs-layout'>)</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span></pre>
756+
757+</div>
758+
759+<div class="hint8 file2">
760+src/Language/PureScript/CodeGen/JS.hs:133:12: Warning: Redundant $<br/>
761+Found<br/>
762+<pre><span class='hs-conid'>Just</span> <span class='hs-varop'>$</span>
763+ <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSFunction</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varop'>$</span> <span class='hs-varid'>runProperName</span> <span class='hs-varid'>name</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>identToJs</span> <span class='hs-varop'>`map`</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span>
764+ <span class='hs-layout'>(</span><span class='hs-conid'>JSBlock</span> <span class='hs-varop'>$</span> <span class='hs-varid'>assn</span> <span class='hs-varop'>`map`</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span></pre>
765+Why not<br/>
766+<pre><span class='hs-conid'>Just</span>
767+ <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSFunction</span> <span class='hs-layout'>(</span><span class='hs-conid'>Just</span> <span class='hs-varop'>$</span> <span class='hs-varid'>runProperName</span> <span class='hs-varid'>name</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>identToJs</span> <span class='hs-varop'>`map`</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span>
768+ <span class='hs-layout'>(</span><span class='hs-conid'>JSBlock</span> <span class='hs-varop'>$</span> <span class='hs-varid'>assn</span> <span class='hs-varop'>`map`</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span></pre>
769+
770+</div>
771+
772+<div class="hint15 file2">
773+src/Language/PureScript/CodeGen/JS.hs:236:18: Warning: Use record patterns<br/>
774+Found<br/>
775+<pre><span class='hs-conid'>TypeClassDictionary</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span></pre>
776+Why not<br/>
777+<pre><span class='hs-conid'>TypeClassDictionary</span><span class='hs-layout'>{</span><span class='hs-layout'>}</span></pre>
778+
779+</div>
780+
781+<div class="hint8 file2">
782+src/Language/PureScript/CodeGen/JS.hs:286:107: Warning: Redundant $<br/>
783+Found<br/>
784+<pre><span class='hs-conid'>JSApp</span> <span class='hs-layout'>(</span><span class='hs-conid'>JSVar</span> <span class='hs-str'>"Error"</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSStringLiteral</span> <span class='hs-str'>"Failed pattern match"</span><span class='hs-keyglyph'>]</span></pre>
785+Why not<br/>
786+<pre><span class='hs-conid'>JSApp</span> <span class='hs-layout'>(</span><span class='hs-conid'>JSVar</span> <span class='hs-str'>"Error"</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSStringLiteral</span> <span class='hs-str'>"Failed pattern match"</span><span class='hs-keyglyph'>]</span></pre>
787+
788+</div>
789+
790+<div class="hint2 file2">
791+src/Language/PureScript/CodeGen/JS.hs:325:3: Error: Too strict if<br/>
792+Found<br/>
793+<pre><span class='hs-keyword'>if</span> <span class='hs-varid'>isOnlyConstructor</span> <span class='hs-varid'>e</span> <span class='hs-varid'>ctor</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>return</span> <span class='hs-varid'>js</span> <span class='hs-keyword'>else</span>
794+ <span class='hs-varid'>return</span>
795+ <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSIfElse</span>
796+ <span class='hs-layout'>(</span><span class='hs-conid'>JSInstanceOf</span> <span class='hs-layout'>(</span><span class='hs-conid'>JSVar</span> <span class='hs-varid'>varName</span><span class='hs-layout'>)</span>
797+ <span class='hs-layout'>(</span><span class='hs-varid'>qualifiedToJS</span> <span class='hs-varid'>m</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ident</span> <span class='hs-varop'>.</span> <span class='hs-varid'>runProperName</span><span class='hs-layout'>)</span> <span class='hs-varid'>ctor</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
798+ <span class='hs-layout'>(</span><span class='hs-conid'>JSBlock</span> <span class='hs-varid'>js</span><span class='hs-layout'>)</span>
799+ <span class='hs-conid'>Nothing</span><span class='hs-keyglyph'>]</span></pre>
800+Why not<br/>
801+<pre><span class='hs-definition'>return</span>
802+ <span class='hs-layout'>(</span><span class='hs-keyword'>if</span> <span class='hs-varid'>isOnlyConstructor</span> <span class='hs-varid'>e</span> <span class='hs-varid'>ctor</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>js</span> <span class='hs-keyword'>else</span>
803+ <span class='hs-keyglyph'>[</span><span class='hs-conid'>JSIfElse</span>
804+ <span class='hs-layout'>(</span><span class='hs-conid'>JSInstanceOf</span> <span class='hs-layout'>(</span><span class='hs-conid'>JSVar</span> <span class='hs-varid'>varName</span><span class='hs-layout'>)</span>
805+ <span class='hs-layout'>(</span><span class='hs-varid'>qualifiedToJS</span> <span class='hs-varid'>m</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ident</span> <span class='hs-varop'>.</span> <span class='hs-varid'>runProperName</span><span class='hs-layout'>)</span> <span class='hs-varid'>ctor</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
806+ <span class='hs-layout'>(</span><span class='hs-conid'>JSBlock</span> <span class='hs-varid'>js</span><span class='hs-layout'>)</span>
807+ <span class='hs-conid'>Nothing</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span></pre>
808+<span class='note'>Note: increases laziness</span>
809+</div>
810+
811+<div class="hint15 file5">
812+src/Language/PureScript/Optimizer/TCO.hs:102:15: Warning: Use record patterns<br/>
813+Found<br/>
814+<pre><span class='hs-conid'>JSFunction</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span></pre>
815+Why not<br/>
816+<pre><span class='hs-conid'>JSFunction</span><span class='hs-layout'>{</span><span class='hs-layout'>}</span></pre>
817+
818+</div>
819+
820+<div class="hint4 file6">
821+src/Language/PureScript/Optimizer/Unused.hs:32:46: Error: Use break<br/>
822+Found<br/>
823+<pre><span class='hs-definition'>span</span> <span class='hs-layout'>(</span><span class='hs-varid'>not</span> <span class='hs-varop'>.</span> <span class='hs-varid'>isJSReturn</span><span class='hs-layout'>)</span></pre>
824+Why not<br/>
825+<pre><span class='hs-definition'>break</span> <span class='hs-varid'>isJSReturn</span></pre>
826+
827+</div>
828+
829+<div class="hint11 file7">
830+src/Language/PureScript/Parser/Common.hs:60:12: Warning: Use String<br/>
831+Found<br/>
832+<pre><span class='hs-keyglyph'>[</span><span class='hs-conid'>Char</span><span class='hs-keyglyph'>]</span></pre>
833+Why not<br/>
834+<pre><span class='hs-conid'>String</span></pre>
835+
836+</div>
837+
838+<div class="hint9 file7">
839+src/Language/PureScript/Parser/Common.hs:347:19: Warning: Redundant bracket<br/>
840+Found<br/>
841+<pre><span class='hs-conid'>P</span><span class='hs-varop'>.</span><span class='hs-varid'>between</span> <span class='hs-varid'>tick</span> <span class='hs-varid'>tick</span> <span class='hs-layout'>(</span><span class='hs-varid'>parseQualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ident</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>identifier</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;|&gt;</span>
842+ <span class='hs-layout'>(</span><span class='hs-varid'>parseQualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Op</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>operator</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span></pre>
843+Why not<br/>
844+<pre><span class='hs-conid'>P</span><span class='hs-varop'>.</span><span class='hs-varid'>between</span> <span class='hs-varid'>tick</span> <span class='hs-varid'>tick</span> <span class='hs-layout'>(</span><span class='hs-varid'>parseQualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ident</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>identifier</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;|&gt;</span>
845+ <span class='hs-varid'>parseQualified</span> <span class='hs-layout'>(</span><span class='hs-conid'>Op</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>operator</span><span class='hs-layout'>)</span></pre>
846+
847+</div>
848+
849+<div class="hint7 file8">
850+src/Language/PureScript/Parser/Declarations.hs:109:14: Warning: Reduce duplication<br/>
851+Found<br/>
852+<pre><span class='hs-definition'>deps</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>parens</span>
853+ <span class='hs-layout'>(</span><span class='hs-varid'>commaSep1</span>
854+ <span class='hs-layout'>(</span><span class='hs-conid'>(,)</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>parseQualified</span> <span class='hs-varid'>properName</span> <span class='hs-varop'>&lt;*&gt;</span> <span class='hs-conid'>P</span><span class='hs-varop'>.</span><span class='hs-varid'>many</span> <span class='hs-varid'>parseTypeAtom</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
855+<span class='hs-definition'>indented</span>
856+<span class='hs-definition'>reservedOp</span> <span class='hs-str'>"=&gt;"</span>
857+<span class='hs-definition'>return</span> <span class='hs-varid'>deps</span>
858+</pre>
859+Why not<br/>
860+<pre><span class='hs-conid'>Combine</span> <span class='hs-varid'>with</span> <span class='hs-varid'>src</span><span class='hs-varop'>/</span><span class='hs-conid'>Language</span><span class='hs-varop'>/</span><span class='hs-conid'>PureScript</span><span class='hs-varop'>/</span><span class='hs-conid'>Parser</span><span class='hs-varop'>/</span><span class='hs-conid'>Declarations</span><span class='hs-varop'>.</span><span class='hs-varid'>hs</span><span class='hs-conop'>:</span><span class='hs-num'>194</span><span class='hs-conop'>:</span><span class='hs-num'>5</span></pre>
861+
862+</div>
863+
864+<div class="hint8 file8">
865+src/Language/PureScript/Parser/Declarations.hs:163:31: Warning: Redundant $<br/>
866+Found<br/>
867+<pre><span class='hs-definition'>indented</span> <span class='hs-varop'>*&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>parens</span> <span class='hs-varop'>$</span> <span class='hs-varid'>commaSep</span> <span class='hs-varid'>parseDeclarationRef</span><span class='hs-layout'>)</span></pre>
868+Why not<br/>
869+<pre><span class='hs-definition'>indented</span> <span class='hs-varop'>*&gt;</span> <span class='hs-varid'>parens</span> <span class='hs-layout'>(</span><span class='hs-varid'>commaSep</span> <span class='hs-varid'>parseDeclarationRef</span><span class='hs-layout'>)</span></pre>
870+
871+</div>
872+
873+<div class="hint10 file9">
874+src/Language/PureScript/Pretty/JS.hs:41:31: Warning: Use &lt;$&gt;<br/>
875+Found<br/>
876+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
877+ <span class='hs-varid'>sequence</span>
878+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"[ "</span><span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-varid'>intercalate</span> <span class='hs-str'>", "</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>prettyPrintJS'</span><span class='hs-layout'>,</span>
879+ <span class='hs-varid'>return</span> <span class='hs-str'>" ]"</span><span class='hs-keyglyph'>]</span></pre>
880+Why not<br/>
881+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
882+ <span class='hs-varid'>sequence</span>
883+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"[ "</span><span class='hs-layout'>,</span> <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-varid'>intercalate</span> <span class='hs-str'>", "</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>prettyPrintJS'</span><span class='hs-layout'>,</span>
884+ <span class='hs-varid'>return</span> <span class='hs-str'>" ]"</span><span class='hs-keyglyph'>]</span></pre>
885+
886+</div>
887+
888+<div class="hint10 file9">
889+src/Language/PureScript/Pretty/JS.hs:43:7: Warning: Use &lt;$&gt;<br/>
890+Found<br/>
891+<pre><span class='hs-definition'>fmap</span> <span class='hs-layout'>(</span><span class='hs-varid'>intercalate</span> <span class='hs-str'>", "</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>prettyPrintJS'</span></pre>
892+Why not<br/>
893+<pre><span class='hs-definition'>intercalate</span> <span class='hs-str'>", "</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>prettyPrintJS'</span></pre>
894+
895+</div>
896+
897+<div class="hint10 file9">
898+src/Language/PureScript/Pretty/JS.hs:47:32: Warning: Use &lt;$&gt;<br/>
899+Found<br/>
900+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
901+ <span class='hs-varid'>sequence</span>
902+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"{\n"</span><span class='hs-layout'>,</span>
903+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span>
904+ <span class='hs-keyword'>do</span> <span class='hs-varid'>jss</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>ps</span> <span class='hs-varop'>$</span>
905+ <span class='hs-keyglyph'>\</span> <span class='hs-layout'>(</span><span class='hs-varid'>key</span><span class='hs-layout'>,</span> <span class='hs-varid'>value</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span>
906+ <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>objectPropertyToString</span> <span class='hs-varid'>key</span> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span><span class='hs-layout'>)</span> <span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-varop'>.</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varop'>$</span>
907+ <span class='hs-varid'>value</span>
908+ <span class='hs-varid'>indentString</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>currentIndent</span>
909+ <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>intercalate</span> <span class='hs-str'>", \n"</span> <span class='hs-varop'>$</span> <span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>indentString</span> <span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-varid'>jss</span><span class='hs-layout'>,</span>
910+ <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-layout'>,</span> <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"}"</span><span class='hs-keyglyph'>]</span></pre>
911+Why not<br/>
912+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
913+ <span class='hs-varid'>sequence</span>
914+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"{\n"</span><span class='hs-layout'>,</span>
915+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span>
916+ <span class='hs-keyword'>do</span> <span class='hs-varid'>jss</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>ps</span> <span class='hs-varop'>$</span>
917+ <span class='hs-keyglyph'>\</span> <span class='hs-layout'>(</span><span class='hs-varid'>key</span><span class='hs-layout'>,</span> <span class='hs-varid'>value</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span>
918+ <span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>objectPropertyToString</span> <span class='hs-varid'>key</span> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span><span class='hs-layout'>)</span> <span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-varop'>.</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varop'>$</span>
919+ <span class='hs-varid'>value</span>
920+ <span class='hs-varid'>indentString</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>currentIndent</span>
921+ <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>intercalate</span> <span class='hs-str'>", \n"</span> <span class='hs-varop'>$</span> <span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>indentString</span> <span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-varid'>jss</span><span class='hs-layout'>,</span>
922+ <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-layout'>,</span> <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"}"</span><span class='hs-keyglyph'>]</span></pre>
923+
924+</div>
925+
926+<div class="hint10 file9">
927+src/Language/PureScript/Pretty/JS.hs:61:25: Warning: Use &lt;$&gt;<br/>
928+Found<br/>
929+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
930+ <span class='hs-varid'>sequence</span>
931+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"{\n"</span><span class='hs-layout'>,</span> <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyStatements</span> <span class='hs-varid'>sts</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-layout'>,</span>
932+ <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"}"</span><span class='hs-keyglyph'>]</span></pre>
933+Why not<br/>
934+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
935+ <span class='hs-varid'>sequence</span>
936+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"{\n"</span><span class='hs-layout'>,</span> <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyStatements</span> <span class='hs-varid'>sts</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-layout'>,</span>
937+ <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"}"</span><span class='hs-keyglyph'>]</span></pre>
938+
939+</div>
940+
941+<div class="hint10 file9">
942+src/Language/PureScript/Pretty/JS.hs:69:48: Warning: Use &lt;$&gt;<br/>
943+Found<br/>
944+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
945+ <span class='hs-varid'>sequence</span>
946+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"var "</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-varid'>ident</span><span class='hs-layout'>,</span>
947+ <span class='hs-varid'>maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-str'>""</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-str'>" = "</span> <span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-varop'>.</span> <span class='hs-varid'>prettyPrintJS'</span><span class='hs-layout'>)</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
948+Why not<br/>
949+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
950+ <span class='hs-varid'>sequence</span>
951+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"var "</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-varid'>ident</span><span class='hs-layout'>,</span>
952+ <span class='hs-varid'>maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-str'>""</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-str'>" = "</span> <span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-varop'>.</span> <span class='hs-varid'>prettyPrintJS'</span><span class='hs-layout'>)</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
953+
954+</div>
955+
956+<div class="hint10 file9">
957+src/Language/PureScript/Pretty/JS.hs:74:39: Warning: Use &lt;$&gt;<br/>
958+Found<br/>
959+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
960+ <span class='hs-varid'>sequence</span>
961+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>target</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>" = "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
962+Why not<br/>
963+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
964+ <span class='hs-varid'>sequence</span>
965+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>target</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>" = "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
966+
967+</div>
968+
969+<div class="hint10 file9">
970+src/Language/PureScript/Pretty/JS.hs:79:30: Warning: Use &lt;$&gt;<br/>
971+Found<br/>
972+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
973+ <span class='hs-varid'>sequence</span>
974+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"while ("</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>cond</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>") "</span><span class='hs-layout'>,</span>
975+ <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>sts</span><span class='hs-keyglyph'>]</span></pre>
976+Why not<br/>
977+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
978+ <span class='hs-varid'>sequence</span>
979+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"while ("</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>cond</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>") "</span><span class='hs-layout'>,</span>
980+ <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>sts</span><span class='hs-keyglyph'>]</span></pre>
981+
982+</div>
983+
984+<div class="hint10 file9">
985+src/Language/PureScript/Pretty/JS.hs:85:39: Warning: Use &lt;$&gt;<br/>
986+Found<br/>
987+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
988+ <span class='hs-varid'>sequence</span>
989+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-str'>"for (var "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>" = "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>start</span><span class='hs-layout'>,</span>
990+ <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-str'>"; "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>" &lt; "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>end</span><span class='hs-layout'>,</span>
991+ <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-str'>"; "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>"++) "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>sts</span><span class='hs-keyglyph'>]</span></pre>
992+Why not<br/>
993+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
994+ <span class='hs-varid'>sequence</span>
995+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-str'>"for (var "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>" = "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>start</span><span class='hs-layout'>,</span>
996+ <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-str'>"; "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>" &lt; "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>end</span><span class='hs-layout'>,</span>
997+ <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-str'>"; "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>"++) "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>sts</span><span class='hs-keyglyph'>]</span></pre>
998+
999+</div>
1000+
1001+<div class="hint10 file9">
1002+src/Language/PureScript/Pretty/JS.hs:93:35: Warning: Use &lt;$&gt;<br/>
1003+Found<br/>
1004+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1005+ <span class='hs-varid'>sequence</span>
1006+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-str'>"for (var "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>" in "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>obj</span><span class='hs-layout'>,</span>
1007+ <span class='hs-varid'>return</span> <span class='hs-str'>") "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>sts</span><span class='hs-keyglyph'>]</span></pre>
1008+Why not<br/>
1009+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1010+ <span class='hs-varid'>sequence</span>
1011+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-str'>"for (var "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>" in "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>obj</span><span class='hs-layout'>,</span>
1012+ <span class='hs-varid'>return</span> <span class='hs-str'>") "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>sts</span><span class='hs-keyglyph'>]</span></pre>
1013+
1014+</div>
1015+
1016+<div class="hint10 file9">
1017+src/Language/PureScript/Pretty/JS.hs:99:39: Warning: Use &lt;$&gt;<br/>
1018+Found<br/>
1019+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1020+ <span class='hs-varid'>sequence</span>
1021+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"if ("</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>cond</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>") "</span><span class='hs-layout'>,</span>
1022+ <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>thens</span><span class='hs-layout'>,</span>
1023+ <span class='hs-varid'>maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-str'>""</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-str'>" else "</span> <span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-varop'>.</span> <span class='hs-varid'>prettyPrintJS'</span><span class='hs-layout'>)</span> <span class='hs-varid'>elses</span><span class='hs-keyglyph'>]</span></pre>
1024+Why not<br/>
1025+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1026+ <span class='hs-varid'>sequence</span>
1027+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"if ("</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>cond</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>") "</span><span class='hs-layout'>,</span>
1028+ <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>thens</span><span class='hs-layout'>,</span>
1029+ <span class='hs-varid'>maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>return</span> <span class='hs-str'>""</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>fmap</span> <span class='hs-layout'>(</span><span class='hs-str'>" else "</span> <span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-varop'>.</span> <span class='hs-varid'>prettyPrintJS'</span><span class='hs-layout'>)</span> <span class='hs-varid'>elses</span><span class='hs-keyglyph'>]</span></pre>
1030+
1031+</div>
1032+
1033+<div class="hint10 file9">
1034+src/Language/PureScript/Pretty/JS.hs:106:28: Warning: Use &lt;$&gt;<br/>
1035+Found<br/>
1036+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span> <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"return "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
1037+Why not<br/>
1038+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"return "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
1039+
1040+</div>
1041+
1042+<div class="hint10 file9">
1043+src/Language/PureScript/Pretty/JS.hs:110:27: Warning: Use &lt;$&gt;<br/>
1044+Found<br/>
1045+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span> <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"throw "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
1046+Why not<br/>
1047+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"throw "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
1048+
1049+</div>
1050+
1051+<div class="hint10 file9">
1052+src/Language/PureScript/Pretty/JS.hs:116:28: Warning: Use &lt;$&gt;<br/>
1053+Found<br/>
1054+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span> <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>lbl</span> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>js</span><span class='hs-keyglyph'>]</span></pre>
1055+Why not<br/>
1056+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>lbl</span> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintJS'</span> <span class='hs-varid'>js</span><span class='hs-keyglyph'>]</span></pre>
1057+
1058+</div>
1059+
1060+<div class="hint10 file10">
1061+src/Language/PureScript/Pretty/Values.hs:41:29: Warning: Use &lt;$&gt;<br/>
1062+Found<br/>
1063+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1064+ <span class='hs-varid'>sequence</span>
1065+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"[ "</span><span class='hs-layout'>,</span> <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>xs</span><span class='hs-layout'>,</span>
1066+ <span class='hs-varid'>return</span> <span class='hs-str'>" ]"</span><span class='hs-keyglyph'>]</span></pre>
1067+Why not<br/>
1068+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1069+ <span class='hs-varid'>sequence</span>
1070+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"[ "</span><span class='hs-layout'>,</span> <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>xs</span><span class='hs-layout'>,</span>
1071+ <span class='hs-varid'>return</span> <span class='hs-str'>" ]"</span><span class='hs-keyglyph'>]</span></pre>
1072+
1073+</div>
1074+
1075+<div class="hint10 file10">
1076+src/Language/PureScript/Pretty/Values.hs:47:30: Warning: Use &lt;$&gt;<br/>
1077+Found<br/>
1078+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1079+ <span class='hs-varid'>sequence</span>
1080+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"{\n"</span><span class='hs-layout'>,</span>
1081+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintObjectProperty</span> <span class='hs-varid'>ps</span><span class='hs-layout'>,</span>
1082+ <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-layout'>,</span> <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"}"</span><span class='hs-keyglyph'>]</span></pre>
1083+Why not<br/>
1084+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1085+ <span class='hs-varid'>sequence</span>
1086+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"{\n"</span><span class='hs-layout'>,</span>
1087+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintObjectProperty</span> <span class='hs-varid'>ps</span><span class='hs-layout'>,</span>
1088+ <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-layout'>,</span> <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"}"</span><span class='hs-keyglyph'>]</span></pre>
1089+
1090+</div>
1091+
1092+<div class="hint10 file10">
1093+src/Language/PureScript/Pretty/Values.hs:54:60: Warning: Use &lt;$&gt;<br/>
1094+Found<br/>
1095+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1096+ <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>show</span> <span class='hs-varid'>className</span><span class='hs-layout'>)</span> <span class='hs-varop'>++</span> <span class='hs-str'>"(\n"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>match</span> <span class='hs-varid'>ps</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>")"</span><span class='hs-keyglyph'>]</span></pre>
1097+Why not<br/>
1098+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1099+ <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>show</span> <span class='hs-varid'>className</span><span class='hs-layout'>)</span> <span class='hs-varop'>++</span> <span class='hs-str'>"(\n"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>match</span> <span class='hs-varid'>ps</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>")"</span><span class='hs-keyglyph'>]</span></pre>
1100+
1101+</div>
1102+
1103+<div class="hint9 file10">
1104+src/Language/PureScript/Pretty/Values.hs:55:15: Warning: Redundant bracket<br/>
1105+Found<br/>
1106+<pre><span class='hs-layout'>(</span><span class='hs-varid'>show</span> <span class='hs-varid'>className</span><span class='hs-layout'>)</span> <span class='hs-varop'>++</span> <span class='hs-str'>"(\n"</span></pre>
1107+Why not<br/>
1108+<pre><span class='hs-definition'>show</span> <span class='hs-varid'>className</span> <span class='hs-varop'>++</span> <span class='hs-str'>"(\n"</span></pre>
1109+
1110+</div>
1111+
1112+<div class="hint10 file10">
1113+src/Language/PureScript/Pretty/Values.hs:60:33: Warning: Use &lt;$&gt;<br/>
1114+Found<br/>
1115+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1116+ <span class='hs-varid'>sequence</span>
1117+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"case "</span><span class='hs-layout'>,</span> <span class='hs-varid'>unwords</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>values</span> <span class='hs-varid'>prettyPrintValue'</span><span class='hs-layout'>,</span>
1118+ <span class='hs-varid'>return</span> <span class='hs-str'>" of\n"</span><span class='hs-layout'>,</span>
1119+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintCaseAlternative</span> <span class='hs-varid'>binders</span><span class='hs-layout'>,</span>
1120+ <span class='hs-varid'>currentIndent</span><span class='hs-keyglyph'>]</span></pre>
1121+Why not<br/>
1122+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1123+ <span class='hs-varid'>sequence</span>
1124+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"case "</span><span class='hs-layout'>,</span> <span class='hs-varid'>unwords</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>values</span> <span class='hs-varid'>prettyPrintValue'</span><span class='hs-layout'>,</span>
1125+ <span class='hs-varid'>return</span> <span class='hs-str'>" of\n"</span><span class='hs-layout'>,</span>
1126+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintCaseAlternative</span> <span class='hs-varid'>binders</span><span class='hs-layout'>,</span>
1127+ <span class='hs-varid'>currentIndent</span><span class='hs-keyglyph'>]</span></pre>
1128+
1129+</div>
1130+
1131+<div class="hint10 file10">
1132+src/Language/PureScript/Pretty/Values.hs:67:24: Warning: Use &lt;$&gt;<br/>
1133+Found<br/>
1134+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1135+ <span class='hs-varid'>sequence</span>
1136+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"let\n"</span><span class='hs-layout'>,</span>
1137+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintDeclaration</span> <span class='hs-varid'>ds</span><span class='hs-layout'>,</span>
1138+ <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-layout'>,</span> <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"in "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>val</span><span class='hs-keyglyph'>]</span></pre>
1139+Why not<br/>
1140+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1141+ <span class='hs-varid'>sequence</span>
1142+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"let\n"</span><span class='hs-layout'>,</span>
1143+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintDeclaration</span> <span class='hs-varid'>ds</span><span class='hs-layout'>,</span>
1144+ <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-layout'>,</span> <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"in "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>val</span><span class='hs-keyglyph'>]</span></pre>
1145+
1146+</div>
1147+
1148+<div class="hint10 file10">
1149+src/Language/PureScript/Pretty/Values.hs:76:20: Warning: Use &lt;$&gt;<br/>
1150+Found<br/>
1151+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1152+ <span class='hs-varid'>sequence</span>
1153+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"do "</span><span class='hs-layout'>,</span>
1154+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintDoNotationElement</span> <span class='hs-varid'>els</span><span class='hs-layout'>,</span>
1155+ <span class='hs-varid'>currentIndent</span><span class='hs-keyglyph'>]</span></pre>
1156+Why not<br/>
1157+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1158+ <span class='hs-varid'>sequence</span>
1159+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"do "</span><span class='hs-layout'>,</span>
1160+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintDoNotationElement</span> <span class='hs-varid'>els</span><span class='hs-layout'>,</span>
1161+ <span class='hs-varid'>currentIndent</span><span class='hs-keyglyph'>]</span></pre>
1162+
1163+</div>
1164+
1165+<div class="hint10 file10">
1166+src/Language/PureScript/Pretty/Values.hs:89:68: Warning: Use &lt;$&gt;<br/>
1167+Found<br/>
1168+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1169+ <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>show</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>" = "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>val</span><span class='hs-keyglyph'>]</span></pre>
1170+Why not<br/>
1171+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1172+ <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>show</span> <span class='hs-varid'>ident</span> <span class='hs-varop'>++</span> <span class='hs-str'>" = "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>val</span><span class='hs-keyglyph'>]</span></pre>
1173+
1174+</div>
1175+
1176+<div class="hint10 file10">
1177+src/Language/PureScript/Pretty/Values.hs:98:3: Warning: Use &lt;$&gt;<br/>
1178+Found<br/>
1179+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1180+ <span class='hs-varid'>sequence</span>
1181+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>intercalate</span> <span class='hs-str'>", "</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>binders</span> <span class='hs-varid'>prettyPrintBinder'</span><span class='hs-layout'>,</span>
1182+ <span class='hs-varid'>prettyPrintResult</span> <span class='hs-varid'>result</span><span class='hs-keyglyph'>]</span></pre>
1183+Why not<br/>
1184+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1185+ <span class='hs-varid'>sequence</span>
1186+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>intercalate</span> <span class='hs-str'>", "</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>binders</span> <span class='hs-varid'>prettyPrintBinder'</span><span class='hs-layout'>,</span>
1187+ <span class='hs-varid'>prettyPrintResult</span> <span class='hs-varid'>result</span><span class='hs-keyglyph'>]</span></pre>
1188+
1189+</div>
1190+
1191+<div class="hint10 file10">
1192+src/Language/PureScript/Pretty/Values.hs:107:5: Warning: Use &lt;$&gt;<br/>
1193+Found<br/>
1194+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1195+ <span class='hs-varid'>sequence</span>
1196+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"| "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>grd</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>" -&gt; "</span><span class='hs-layout'>,</span>
1197+ <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>val</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-keyglyph'>]</span></pre>
1198+Why not<br/>
1199+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1200+ <span class='hs-varid'>sequence</span>
1201+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"| "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>grd</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>" -&gt; "</span><span class='hs-layout'>,</span>
1202+ <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>val</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"\n"</span><span class='hs-keyglyph'>]</span></pre>
1203+
1204+</div>
1205+
1206+<div class="hint10 file10">
1207+src/Language/PureScript/Pretty/Values.hs:119:3: Warning: Use &lt;$&gt;<br/>
1208+Found<br/>
1209+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1210+ <span class='hs-varid'>sequence</span>
1211+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>prettyPrintBinder'</span> <span class='hs-varid'>binder</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>" &lt;- "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>val</span><span class='hs-keyglyph'>]</span></pre>
1212+Why not<br/>
1213+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1214+ <span class='hs-varid'>sequence</span>
1215+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>prettyPrintBinder'</span> <span class='hs-varid'>binder</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>" &lt;- "</span><span class='hs-layout'>,</span> <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>val</span><span class='hs-keyglyph'>]</span></pre>
1216+
1217+</div>
1218+
1219+<div class="hint10 file10">
1220+src/Language/PureScript/Pretty/Values.hs:125:3: Warning: Use &lt;$&gt;<br/>
1221+Found<br/>
1222+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1223+ <span class='hs-varid'>sequence</span>
1224+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"let "</span><span class='hs-layout'>,</span>
1225+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintDeclaration</span> <span class='hs-varid'>ds</span><span class='hs-keyglyph'>]</span></pre>
1226+Why not<br/>
1227+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1228+ <span class='hs-varid'>sequence</span>
1229+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"let "</span><span class='hs-layout'>,</span>
1230+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintDeclaration</span> <span class='hs-varid'>ds</span><span class='hs-keyglyph'>]</span></pre>
1231+
1232+</div>
1233+
1234+<div class="hint10 file10">
1235+src/Language/PureScript/Pretty/Values.hs:191:41: Warning: Use &lt;$&gt;<br/>
1236+Found<br/>
1237+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1238+ <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>show</span> <span class='hs-varid'>ctor</span> <span class='hs-varop'>++</span> <span class='hs-str'>" "</span><span class='hs-layout'>,</span> <span class='hs-varid'>unwords</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>args</span> <span class='hs-varid'>match</span><span class='hs-keyglyph'>]</span></pre>
1239+Why not<br/>
1240+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1241+ <span class='hs-varid'>sequence</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>show</span> <span class='hs-varid'>ctor</span> <span class='hs-varop'>++</span> <span class='hs-str'>" "</span><span class='hs-layout'>,</span> <span class='hs-varid'>unwords</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>forM</span> <span class='hs-varid'>args</span> <span class='hs-varid'>match</span><span class='hs-keyglyph'>]</span></pre>
1242+
1243+</div>
1244+
1245+<div class="hint10 file10">
1246+src/Language/PureScript/Pretty/Values.hs:195:29: Warning: Use &lt;$&gt;<br/>
1247+Found<br/>
1248+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1249+ <span class='hs-varid'>sequence</span>
1250+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"{\n"</span><span class='hs-layout'>,</span>
1251+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintObjectPropertyBinder</span> <span class='hs-varid'>bs</span><span class='hs-layout'>,</span>
1252+ <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"}"</span><span class='hs-keyglyph'>]</span></pre>
1253+Why not<br/>
1254+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1255+ <span class='hs-varid'>sequence</span>
1256+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"{\n"</span><span class='hs-layout'>,</span>
1257+ <span class='hs-varid'>withIndent</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintMany</span> <span class='hs-varid'>prettyPrintObjectPropertyBinder</span> <span class='hs-varid'>bs</span><span class='hs-layout'>,</span>
1258+ <span class='hs-varid'>currentIndent</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"}"</span><span class='hs-keyglyph'>]</span></pre>
1259+
1260+</div>
1261+
1262+<div class="hint10 file10">
1263+src/Language/PureScript/Pretty/Values.hs:201:28: Warning: Use &lt;$&gt;<br/>
1264+Found<br/>
1265+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1266+ <span class='hs-varid'>sequence</span>
1267+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"["</span><span class='hs-layout'>,</span> <span class='hs-varid'>unwords</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>mapM</span> <span class='hs-varid'>prettyPrintBinder'</span> <span class='hs-varid'>bs</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"]"</span><span class='hs-keyglyph'>]</span></pre>
1268+Why not<br/>
1269+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1270+ <span class='hs-varid'>sequence</span>
1271+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-str'>"["</span><span class='hs-layout'>,</span> <span class='hs-varid'>unwords</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>mapM</span> <span class='hs-varid'>prettyPrintBinder'</span> <span class='hs-varid'>bs</span><span class='hs-layout'>,</span> <span class='hs-varid'>return</span> <span class='hs-str'>"]"</span><span class='hs-keyglyph'>]</span></pre>
1272+
1273+</div>
1274+
1275+<div class="hint10 file10">
1276+src/Language/PureScript/Pretty/Values.hs:232:49: Warning: Use &lt;$&gt;<br/>
1277+Found<br/>
1278+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1279+ <span class='hs-varid'>sequence</span>
1280+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintObjectKey</span> <span class='hs-varid'>key</span> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span><span class='hs-layout'>,</span>
1281+ <span class='hs-varid'>prettyPrintBinder'</span> <span class='hs-varid'>binder</span><span class='hs-keyglyph'>]</span></pre>
1282+Why not<br/>
1283+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1284+ <span class='hs-varid'>sequence</span>
1285+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintObjectKey</span> <span class='hs-varid'>key</span> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span><span class='hs-layout'>,</span>
1286+ <span class='hs-varid'>prettyPrintBinder'</span> <span class='hs-varid'>binder</span><span class='hs-keyglyph'>]</span></pre>
1287+
1288+</div>
1289+
1290+<div class="hint10 file10">
1291+src/Language/PureScript/Pretty/Values.hs:238:42: Warning: Use &lt;$&gt;<br/>
1292+Found<br/>
1293+<pre><span class='hs-definition'>fmap</span> <span class='hs-varid'>concat</span> <span class='hs-varop'>$</span>
1294+ <span class='hs-varid'>sequence</span>
1295+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintObjectKey</span> <span class='hs-varid'>key</span> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span><span class='hs-layout'>,</span>
1296+ <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
1297+Why not<br/>
1298+<pre><span class='hs-definition'>concat</span> <span class='hs-varop'>&lt;$&gt;</span>
1299+ <span class='hs-varid'>sequence</span>
1300+ <span class='hs-keyglyph'>[</span><span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>prettyPrintObjectKey</span> <span class='hs-varid'>key</span> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span><span class='hs-layout'>,</span>
1301+ <span class='hs-varid'>prettyPrintValue'</span> <span class='hs-varid'>value</span><span class='hs-keyglyph'>]</span></pre>
1302+
1303+</div>
1304+
1305+<div class="hint9 file12">
1306+src/Language/PureScript/Sugar/DoNotation.hs:39:43: Warning: Redundant bracket<br/>
1307+Found<br/>
1308+<pre><span class='hs-layout'>(</span><span class='hs-conid'>PositionedDeclaration</span> <span class='hs-varid'>pos</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;$&gt;</span>
1309+ <span class='hs-layout'>(</span><span class='hs-varid'>rethrowWithPosition</span> <span class='hs-varid'>pos</span> <span class='hs-varop'>$</span> <span class='hs-varid'>desugarDo</span> <span class='hs-varid'>d</span><span class='hs-layout'>)</span></pre>
1310+Why not<br/>
1311+<pre><span class='hs-conid'>PositionedDeclaration</span> <span class='hs-varid'>pos</span> <span class='hs-varop'>&lt;$&gt;</span>
1312+ <span class='hs-layout'>(</span><span class='hs-varid'>rethrowWithPosition</span> <span class='hs-varid'>pos</span> <span class='hs-varop'>$</span> <span class='hs-varid'>desugarDo</span> <span class='hs-varid'>d</span><span class='hs-layout'>)</span></pre>
1313+
1314+</div>
1315+
1316+<div class="hint8 file12">
1317+src/Language/PureScript/Sugar/DoNotation.hs:39:43: Warning: Redundant $<br/>
1318+Found<br/>
1319+<pre><span class='hs-layout'>(</span><span class='hs-conid'>PositionedDeclaration</span> <span class='hs-varid'>pos</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;$&gt;</span>
1320+ <span class='hs-layout'>(</span><span class='hs-varid'>rethrowWithPosition</span> <span class='hs-varid'>pos</span> <span class='hs-varop'>$</span> <span class='hs-varid'>desugarDo</span> <span class='hs-varid'>d</span><span class='hs-layout'>)</span></pre>
1321+Why not<br/>
1322+<pre><span class='hs-layout'>(</span><span class='hs-conid'>PositionedDeclaration</span> <span class='hs-varid'>pos</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;$&gt;</span>
1323+ <span class='hs-varid'>rethrowWithPosition</span> <span class='hs-varid'>pos</span> <span class='hs-layout'>(</span><span class='hs-varid'>desugarDo</span> <span class='hs-varid'>d</span><span class='hs-layout'>)</span></pre>
1324+
1325+</div>
1326+
1327+<div class="hint8 file13">
1328+src/Language/PureScript/Sugar/TypeClasses.hs:159:5: Warning: Redundant $<br/>
1329+Found<br/>
1330+<pre><span class='hs-definition'>return</span> <span class='hs-varop'>$</span>
1331+ <span class='hs-layout'>(</span><span class='hs-conid'>Nothing</span><span class='hs-layout'>,</span>
1332+ <span class='hs-varid'>d</span> <span class='hs-conop'>:</span>
1333+ <span class='hs-varid'>typeClassDictionaryDeclaration</span> <span class='hs-varid'>name</span> <span class='hs-varid'>args</span> <span class='hs-varid'>implies</span> <span class='hs-varid'>members</span> <span class='hs-conop'>:</span>
1334+ <span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>typeClassMemberToDictionaryAccessor</span> <span class='hs-varid'>mn</span> <span class='hs-varid'>name</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span> <span class='hs-varid'>members</span><span class='hs-layout'>)</span></pre>
1335+Why not<br/>
1336+<pre><span class='hs-definition'>return</span>
1337+ <span class='hs-layout'>(</span><span class='hs-conid'>Nothing</span><span class='hs-layout'>,</span>
1338+ <span class='hs-varid'>d</span> <span class='hs-conop'>:</span>
1339+ <span class='hs-varid'>typeClassDictionaryDeclaration</span> <span class='hs-varid'>name</span> <span class='hs-varid'>args</span> <span class='hs-varid'>implies</span> <span class='hs-varid'>members</span> <span class='hs-conop'>:</span>
1340+ <span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>typeClassMemberToDictionaryAccessor</span> <span class='hs-varid'>mn</span> <span class='hs-varid'>name</span> <span class='hs-varid'>args</span><span class='hs-layout'>)</span> <span class='hs-varid'>members</span><span class='hs-layout'>)</span></pre>
1341+
1342+</div>
1343+
1344+<div class="hint8 file13">
1345+src/Language/PureScript/Sugar/TypeClasses.hs:164:5: Warning: Redundant $<br/>
1346+Found<br/>
1347+<pre><span class='hs-definition'>return</span> <span class='hs-varop'>$</span> <span class='hs-layout'>(</span><span class='hs-varid'>expRef</span> <span class='hs-varid'>name</span> <span class='hs-varid'>className</span> <span class='hs-varid'>tys</span><span class='hs-layout'>,</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>d</span><span class='hs-layout'>,</span> <span class='hs-varid'>dictDecl</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span></pre>
1348+Why not<br/>
1349+<pre><span class='hs-definition'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>expRef</span> <span class='hs-varid'>name</span> <span class='hs-varid'>className</span> <span class='hs-varid'>tys</span><span class='hs-layout'>,</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>d</span><span class='hs-layout'>,</span> <span class='hs-varid'>dictDecl</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span></pre>
1350+
1351+</div>
1352+
1353+<div class="hint14 file14">
1354+src/Language/PureScript/Sugar/TypeDeclarations.hs:59:25: Warning: Use list literal pattern<br/>
1355+Found<br/>
1356+<pre><span class='hs-layout'>(</span><span class='hs-conid'>TypeDeclaration</span> <span class='hs-varid'>name</span> <span class='hs-keyword'>_</span> <span class='hs-conop'>:</span> <span class='hs-conid'>[]</span><span class='hs-layout'>)</span></pre>
1357+Why not<br/>
1358+<pre><span class='hs-keyglyph'>[</span><span class='hs-conid'>TypeDeclaration</span> <span class='hs-varid'>name</span> <span class='hs-keyword'>_</span><span class='hs-keyglyph'>]</span></pre>
1359+
1360+</div>
1361+
1362+<div class="hint12 file15">
1363+src/Language/PureScript/TypeChecker/Kinds.hs:52:25: Warning: Use fromMaybe<br/>
1364+Found<br/>
1365+<pre><span class='hs-keyword'>case</span> <span class='hs-conid'>H</span><span class='hs-varop'>.</span><span class='hs-varid'>lookup</span> <span class='hs-varid'>u</span> <span class='hs-layout'>(</span><span class='hs-varid'>runSubstitution</span> <span class='hs-varid'>sub</span><span class='hs-layout'>)</span> <span class='hs-keyword'>of</span>
1366+ <span class='hs-conid'>Nothing</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>t</span>
1367+ <span class='hs-conid'>Just</span> <span class='hs-varid'>t'</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>t'</span></pre>
1368+Why not<br/>
1369+<pre><span class='hs-definition'>fromMaybe</span> <span class='hs-varid'>t</span> <span class='hs-layout'>(</span><span class='hs-conid'>H</span><span class='hs-varop'>.</span><span class='hs-varid'>lookup</span> <span class='hs-varid'>u</span> <span class='hs-layout'>(</span><span class='hs-varid'>runSubstitution</span> <span class='hs-varid'>sub</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span></pre>
1370+
1371+</div>
1372+
1373+<div class="hint0 file15">
1374+src/Language/PureScript/TypeChecker/Kinds.hs:127:63: Error: Redundant bracket<br/>
1375+Found<br/>
1376+<pre><span class='hs-layout'>(</span><span class='hs-conid'>Check</span><span class='hs-layout'>)</span></pre>
1377+Why not<br/>
1378+<pre><span class='hs-conid'>Check</span></pre>
1379+
1380+</div>
1381+
1382+<div class="hint6 file15">
1383+src/Language/PureScript/TypeChecker/Kinds.hs:133:3: Error: Use unless<br/>
1384+Found<br/>
1385+<pre><span class='hs-definition'>when</span> <span class='hs-layout'>(</span><span class='hs-varid'>not</span> <span class='hs-varid'>isData</span><span class='hs-layout'>)</span></pre>
1386+Why not<br/>
1387+<pre><span class='hs-definition'>unless</span> <span class='hs-varid'>isData</span></pre>
1388+
1389+</div>
1390+
1391+<div class="hint1 file15">
1392+src/Language/PureScript/TypeChecker/Kinds.hs:133:23: Error: Redundant do<br/>
1393+Found<br/>
1394+<pre><span class='hs-keyword'>do</span> <span class='hs-varid'>tyCon</span> <span class='hs-varop'>=?=</span> <span class='hs-varid'>foldr</span> <span class='hs-conid'>FunKind</span> <span class='hs-layout'>(</span><span class='hs-varid'>head</span> <span class='hs-varid'>ks</span><span class='hs-layout'>)</span> <span class='hs-varid'>kargs</span></pre>
1395+Why not<br/>
1396+<pre><span class='hs-definition'>tyCon</span> <span class='hs-varop'>=?=</span> <span class='hs-varid'>foldr</span> <span class='hs-conid'>FunKind</span> <span class='hs-layout'>(</span><span class='hs-varid'>head</span> <span class='hs-varid'>ks</span><span class='hs-layout'>)</span> <span class='hs-varid'>kargs</span></pre>
1397+
1398+</div>
1399+
1400+<div class="hint7 file16">
1401+src/Language/PureScript/TypeChecker/Monad.hs:45:3: Warning: Reduce duplication<br/>
1402+Found<br/>
1403+<pre><span class='hs-definition'>a</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>action</span>
1404+<span class='hs-definition'>modify</span> <span class='hs-varop'>$</span>
1405+ <span class='hs-keyglyph'>\</span> <span class='hs-varid'>st</span> <span class='hs-keyglyph'>-&gt;</span>
1406+ <span class='hs-varid'>st</span><span class='hs-layout'>{</span><span class='hs-varid'>checkEnv</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>checkEnv</span> <span class='hs-varid'>st</span><span class='hs-layout'>)</span><span class='hs-layout'>{</span><span class='hs-varid'>names</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>names</span> <span class='hs-varop'>.</span> <span class='hs-varid'>checkEnv</span> <span class='hs-varop'>$</span> <span class='hs-varid'>orig</span><span class='hs-layout'>}</span><span class='hs-layout'>}</span>
1407+<span class='hs-definition'>return</span> <span class='hs-varid'>a</span>
1408+</pre>
1409+Why not<br/>
1410+<pre><span class='hs-conid'>Combine</span> <span class='hs-varid'>with</span> <span class='hs-varid'>src</span><span class='hs-varop'>/</span><span class='hs-conid'>Language</span><span class='hs-varop'>/</span><span class='hs-conid'>PureScript</span><span class='hs-varop'>/</span><span class='hs-conid'>TypeChecker</span><span class='hs-varop'>/</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-varid'>hs</span><span class='hs-conop'>:</span><span class='hs-num'>99</span><span class='hs-conop'>:</span><span class='hs-num'>3</span></pre>
1411+
1412+</div>
1413+
1414+<div class="hint7 file17">
1415+src/Language/PureScript/TypeChecker/Types.hs:133:3: Warning: Reduce duplication<br/>
1416+Found<br/>
1417+<pre><span class='hs-definition'>kind</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>liftCheck</span> <span class='hs-varop'>$</span> <span class='hs-varid'>kindOf</span> <span class='hs-varid'>moduleName</span> <span class='hs-varid'>ty</span>
1418+<span class='hs-definition'>guardWith</span>
1419+ <span class='hs-layout'>(</span><span class='hs-varid'>strMsg</span> <span class='hs-varop'>$</span> <span class='hs-str'>"Expected type of kind *, was "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>prettyPrintKind</span> <span class='hs-varid'>kind</span><span class='hs-layout'>)</span>
1420+ <span class='hs-varop'>$</span> <span class='hs-varid'>kind</span> <span class='hs-varop'>==</span> <span class='hs-conid'>Star</span>
1421+<span class='hs-definition'>ty'</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>introduceSkolemScope</span> <span class='hs-varop'>&lt;=&lt;</span> <span class='hs-varid'>replaceAllTypeSynonyms</span> <span class='hs-varop'>$</span> <span class='hs-varid'>ty</span>
1422+</pre>
1423+Why not<br/>
1424+<pre><span class='hs-conid'>Combine</span> <span class='hs-varid'>with</span> <span class='hs-varid'>src</span><span class='hs-varop'>/</span><span class='hs-conid'>Language</span><span class='hs-varop'>/</span><span class='hs-conid'>PureScript</span><span class='hs-varop'>/</span><span class='hs-conid'>TypeChecker</span><span class='hs-varop'>/</span><span class='hs-conid'>Types</span><span class='hs-varop'>.</span><span class='hs-varid'>hs</span><span class='hs-conop'>:</span><span class='hs-num'>285</span><span class='hs-conop'>:</span><span class='hs-num'>3</span></pre>
1425+
1426+</div>
1427+
1428+<div class="hint9 file17">
1429+src/Language/PureScript/TypeChecker/Types.hs:152:12: Warning: Redundant bracket<br/>
1430+Found<br/>
1431+<pre><span class='hs-layout'>(</span><span class='hs-conid'>Ident</span><span class='hs-layout'>,</span> <span class='hs-conid'>Expr</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Either</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ident</span><span class='hs-layout'>,</span> <span class='hs-conid'>Expr</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ident</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-conid'>Expr</span><span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-layout'>,</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span></pre>
1432+Why not<br/>
1433+<pre><span class='hs-layout'>(</span><span class='hs-conid'>Ident</span><span class='hs-layout'>,</span> <span class='hs-conid'>Expr</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Either</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ident</span><span class='hs-layout'>,</span> <span class='hs-conid'>Expr</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ident</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-conid'>Expr</span><span class='hs-layout'>,</span> <span class='hs-conid'>Type</span><span class='hs-layout'>,</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span></pre>
1434+
1435+</div>
1436+
1437+<div class="hint7 file17">
1438+src/Language/PureScript/TypeChecker/Types.hs:284:3: Warning: Reduce duplication<br/>
1439+Found<br/>
1440+<pre><span class='hs-conid'>Just</span> <span class='hs-varid'>moduleName</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>checkCurrentModule</span> <span class='hs-varop'>&lt;$&gt;</span> <span class='hs-varid'>get</span>
1441+<span class='hs-definition'>kind</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>liftCheck</span> <span class='hs-varop'>$</span> <span class='hs-varid'>kindOf</span> <span class='hs-varid'>moduleName</span> <span class='hs-varid'>ty</span>
1442+<span class='hs-definition'>guardWith</span>
1443+ <span class='hs-layout'>(</span><span class='hs-varid'>strMsg</span> <span class='hs-varop'>$</span> <span class='hs-str'>"Expected type of kind *, was "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>prettyPrintKind</span> <span class='hs-varid'>kind</span><span class='hs-layout'>)</span>
1444+ <span class='hs-varop'>$</span> <span class='hs-varid'>kind</span> <span class='hs-varop'>==</span> <span class='hs-conid'>Star</span>
1445+</pre>
1446+Why not<br/>
1447+<pre><span class='hs-conid'>Combine</span> <span class='hs-varid'>with</span> <span class='hs-varid'>src</span><span class='hs-varop'>/</span><span class='hs-conid'>Language</span><span class='hs-varop'>/</span><span class='hs-conid'>PureScript</span><span class='hs-varop'>/</span><span class='hs-conid'>TypeChecker</span><span class='hs-varop'>/</span><span class='hs-conid'>Types</span><span class='hs-varop'>.</span><span class='hs-varid'>hs</span><span class='hs-conop'>:</span><span class='hs-num'>296</span><span class='hs-conop'>:</span><span class='hs-num'>3</span></pre>
1448+
1449+</div>
1450+
1451+<div class="hint9 file17">
1452+src/Language/PureScript/TypeChecker/Types.hs:318:3: Warning: Redundant bracket<br/>
1453+Found<br/>
1454+<pre><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>d'</span> <span class='hs-conop'>:</span> <span class='hs-varid'>ds'</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>val'</span><span class='hs-layout'>)</span></pre>
1455+Why not<br/>
1456+<pre><span class='hs-layout'>(</span><span class='hs-varid'>d'</span> <span class='hs-conop'>:</span> <span class='hs-varid'>ds'</span><span class='hs-layout'>,</span> <span class='hs-varid'>val'</span><span class='hs-layout'>)</span></pre>
1457+
1458+</div>
1459+
1460+<div class="hint16 file17">
1461+src/Language/PureScript/TypeChecker/Types.hs:550:44: Warning: Use section<br/>
1462+Found<br/>
1463+<pre><span class='hs-layout'>(</span><span class='hs-varid'>flip</span> <span class='hs-varid'>check</span> <span class='hs-varid'>ty</span><span class='hs-layout'>)</span></pre>
1464+Why not<br/>
1465+<pre><span class='hs-layout'>(</span><span class='hs-varop'>`check`</span> <span class='hs-varid'>ty</span><span class='hs-layout'>)</span></pre>
1466+
1467+</div>
1468+
1469+<div class="hint15 file17">
1470+src/Language/PureScript/TypeChecker/Types.hs:578:13: Warning: Use record patterns<br/>
1471+Found<br/>
1472+<pre><span class='hs-conid'>Skolem</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span></pre>
1473+Why not<br/>
1474+<pre><span class='hs-conid'>Skolem</span><span class='hs-layout'>{</span><span class='hs-layout'>}</span></pre>
1475+
1476+</div>
1477+
1478+<div class="hint1 file17">
1479+src/Language/PureScript/TypeChecker/Types.hs:641:58: Error: Redundant do<br/>
1480+Found<br/>
1481+<pre><span class='hs-keyword'>do</span> <span class='hs-varid'>checkFunctionApplication</span> <span class='hs-varid'>fn</span> <span class='hs-varid'>ty</span> <span class='hs-varid'>arg</span> <span class='hs-varid'>ret</span></pre>
1482+Why not<br/>
1483+<pre><span class='hs-definition'>checkFunctionApplication</span> <span class='hs-varid'>fn</span> <span class='hs-varid'>ty</span> <span class='hs-varid'>arg</span> <span class='hs-varid'>ret</span></pre>
1484+
1485+</div>
1486+
1487+<div class="hint15 file17">
1488+src/Language/PureScript/TypeChecker/Types.hs:646:41: Warning: Use record patterns<br/>
1489+Found<br/>
1490+<pre><span class='hs-conid'>TypeClassDictionary</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span></pre>
1491+Why not<br/>
1492+<pre><span class='hs-conid'>TypeClassDictionary</span><span class='hs-layout'>{</span><span class='hs-layout'>}</span></pre>
1493+
1494+</div>
1495+
1496+</div>
1497+</body>
1498+</html>
src/Language/PureScript/TypeChecker/Rows.hs+2−2
@@ -1,6 +1,6 @@
11-----------------------------------------------------------------------------
22--
3−-- Module : Language.PureScript.TypeChecker.Types
3+-- Module : Language.PureScript.TypeChecker.Rows
44-- Copyright : (c) Phil Freeman 2013
55-- License : MIT
66--
@@ -9,7 +9,7 @@
99-- Portability :
1010--
1111-- |
12−-- This module implements the type checker
12+-- Functions relating to type checking for rows
1313--
1414-----------------------------------------------------------------------------
1515
src/Language/PureScript/TypeChecker/Skolems.hs+2−2
@@ -1,6 +1,6 @@
11-----------------------------------------------------------------------------
22--
3−-- Module : Language.PureScript.TypeChecker.Types
3+-- Module : Language.PureScript.TypeChecker.Skolems
44-- Copyright : (c) Phil Freeman 2013
55-- License : MIT
66--
@@ -9,7 +9,7 @@
99-- Portability :
1010--
1111-- |
12−-- This module implements the type checker
12+-- Functions relating to skolemization used during typechecking
1313--
1414-----------------------------------------------------------------------------
1515
src/Language/PureScript/TypeChecker/Subsumption.hs+4−4
@@ -1,6 +1,6 @@
11-----------------------------------------------------------------------------
22--
3−-- Module : Language.PureScript.TypeChecker.Types
3+-- Module : Language.PureScript.TypeChecker.Subsumption
44-- Copyright : (c) Phil Freeman 2013
55-- License : MIT
66--
@@ -9,7 +9,7 @@
99-- Portability :
1010--
1111-- |
12−-- This module implements the type checker
12+-- Subsumption checking
1313--
1414-----------------------------------------------------------------------------
1515
@@ -70,9 +70,9 @@ subsumes' val (SaturatedTypeSynonym name tyArgs) ty2 = do
7070subsumes' val ty1 (SaturatedTypeSynonym name tyArgs) = do
7171 ty2 <- introduceSkolemScope <=< expandTypeSynonym name $ tyArgs
7272 subsumes val ty1 ty2
73−subsumes' val (KindedType ty1 _) ty2 = do
73+subsumes' val (KindedType ty1 _) ty2 =
7474 subsumes val ty1 ty2
75−subsumes' val ty1 (KindedType ty2 _) = do
75+subsumes' val ty1 (KindedType ty2 _) =
7676 subsumes val ty1 ty2
7777subsumes' (Just val) (ConstrainedType constraints ty1) ty2 = do
7878 dicts <- getTypeClassDictionaries