<pre class="sourceCode haskell"><code><span class="dt">Here&#39;s</span> the three main functions involved<span class="fu">.</span> <span class="dt">Let</span> me know <span class="kw">if</span> <span class="dt">I</span> am missing pertinent information<span class="fu">.</span><br>
<br><span class="dt">I&#39;m</span> having difficulty unraveling this <span class="fu">error</span> message<span class="fu">.</span> <span class="dt">Help</span><span class="fu">?</span><br><br><span class="fu">&gt;</span> obtainCookies :: <span class="dt">Curl</span> -&gt; <span class="dt">String</span> -&gt; <span class="dt">IO</span> ()<br>
<span class="fu">&gt;</span> obtainCookies curl responseBody <span class="fu">=</span> <span class="kw">do</span><br><span class="fu">&gt;</span>                 <span class="fu">return</span> <span class="fu">$</span> <span class="fu">last</span> <span class="fu">$</span> liftM <span class="fu">$</span><br>
<span class="fu">&gt;</span>                    <span class="fu">mapM</span> (<span class="fu">flip</span> (curlResp2 curl) resourceOpts)<br><span class="fu">&gt;</span>                     screenScraping responseBody<br>
<br><span class="fu">&gt;</span> screenScraping :: <span class="dt">String</span> -&gt; [<span class="dt">URLString</span>]<br><span class="fu">&gt;</span> screenScraping responseBody <span class="fu">=</span><br><span class="fu">&gt;</span>                <span class="kw">let</span> collectedStrings <span class="fu">=</span> processHTML responseBody<br>
<span class="fu">&gt;</span>                    collectedIDLists <span class="fu">=</span> createIDList collectedStrings<br><span class="fu">&gt;</span>                    <span class="kw">in</span> constructedResourceURIs urlBase collectedIDLists<br>
<br><span class="fu">&gt;</span> constructedResourceURIs :: <span class="dt">String</span> -&gt; [<span class="dt">String</span>] -&gt; [<span class="dt">URLString</span>]<br><span class="fu">&gt;</span> constructedResourceURIs url resourceIDs <span class="fu">=</span><br>
<span class="fu">&gt;</span>                         <span class="kw">let</span> frontURI <span class="fu">=</span> url <span class="fu">++</span> <span class="st">&quot;/launchWebForward.do?&quot;</span><br><span class="fu">&gt;</span>                             midURI <span class="fu">=</span> <span class="fu">map</span> (frontURI <span class="fu">++</span>) resourceIDs<br>
<span class="fu">&gt;</span>                         <span class="kw">in</span> <span class="fu">map</span> (<span class="fu">++</span> <span class="st">&quot;&amp;policy=0&amp;returnTo=%2FshowWebForwards.do&quot;</span>) midURI<br>
<br><br><br>HtmlParsing.lhs<span class="fu">:</span><span class="dv">81</span><span class="fu">:</span><span class="dv">22</span><span class="fu">:</span><br>    <span class="dt">Couldn&#39;t</span> match expected <span class="kw">type</span> <span class="ot">`[URLString]&#39;</span><br>
<span class="ot">           against inferred type `</span><span class="dt">String</span> -&gt; [<span class="dt">URLString</span>]<span class="ch">&#39;</span><br>    <span class="dt">In</span> the second argument <span class="kw">of</span> <span class="ot">`mapM&#39;, namely `</span>screenScraping&#39;<br>
    <span class="dt">In</span> the second argument <span class="kw">of</span> <span class="ot">`($)&#39;, namely</span><br><span class="ot">        `</span>mapM<br>           (<span class="fu">flip</span> (curlResp2 curl) resourceOpts) screenScraping responseBody&#39;<br>
    <span class="dt">In</span> the second argument <span class="kw">of</span> <span class="ot">`($)&#39;, namely</span><br><span class="ot">        `</span>liftM<br>       <span class="fu">$</span> <span class="fu">mapM</span><br>
           (<span class="fu">flip</span> (curlResp2 curl) resourceOpts) screenScraping responseBody&#39;</code></pre>