<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: More fun with Cabal, visualising dependencies</title>
	<atom:link href="http://therning.org/magnus/archives/534/feed" rel="self" type="application/rss+xml" />
	<link>http://therning.org/magnus/archives/534</link>
	<description>Incoherent mumblings</description>
	<lastBuildDate>Tue, 24 Aug 2010 06:00:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Magnus</title>
		<link>http://therning.org/magnus/archives/534/comment-page-1#comment-171533</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Fri, 27 Feb 2009 19:20:57 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/?p=534#comment-171533</guid>
		<description>&lt;p&gt;As Duncan pointed out in a comment to &lt;a href=&quot;http://therning.org/magnus/archives/523&quot; rel=&quot;nofollow&quot;&gt;my earlier post&lt;/a&gt; I should have been using &lt;code&gt;parsePackageDescription&lt;/code&gt; instead of &lt;code&gt;readPackageDescription&lt;/code&gt;.  With that knowledge I rewrote &lt;code&gt;readCabalFile&lt;/code&gt; like this:&lt;/p&gt;

&lt;pre lang=&quot;haskell&quot;&gt;
readCabalFile fn = let
        translateParseResult (ParseFailed _) = Nothing
        translateParseResult (ParseOk _ gpd) = Just gpd
    in bracket (openFile fn ReadMode) hClose
        (\ h -&gt; do
            contents &lt;- hGetContents h
            return $! translateParseResult $ parsePackageDescription contents)
&lt;/pre&gt;

&lt;p&gt;No more manual deletion of cabal files necessary :-)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>As Duncan pointed out in a comment to <a href="http://therning.org/magnus/archives/523" rel="nofollow">my earlier post</a> I should have been using <code>parsePackageDescription</code> instead of <code>readPackageDescription</code>.  With that knowledge I rewrote <code>readCabalFile</code> like this:</p>


<div class="wp_syntax"><div class="code"><pre class="haskell" style="font-family:monospace;">readCabalFile fn <span style="color: #339933; font-weight: bold;">=</span> <span style="color: #06c; font-weight: bold;">let</span>
        translateParseResult <span style="color: green;">&#40;</span>ParseFailed <span style="color: #339933; font-weight: bold;">_</span><span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> Nothing
        translateParseResult <span style="color: green;">&#40;</span>ParseOk <span style="color: #339933; font-weight: bold;">_</span> gpd<span style="color: green;">&#41;</span> <span style="color: #339933; font-weight: bold;">=</span> Just gpd
    <span style="color: #06c; font-weight: bold;">in</span> bracket <span style="color: green;">&#40;</span>openFile fn ReadMode<span style="color: green;">&#41;</span> hClose
        <span style="color: green;">&#40;</span>\ h <span style="color: #339933; font-weight: bold;">-</span>&amp;gt; <span style="color: #06c; font-weight: bold;">do</span>
            contents &amp;lt;<span style="color: #339933; font-weight: bold;">-</span> hGetContents h
            <span style="font-weight: bold;">return</span> <span style="color: #339933; font-weight: bold;">$!</span> translateParseResult <span style="color: #339933; font-weight: bold;">$</span> parsePackageDescription contents<span style="color: green;">&#41;</span></pre></div></div>




<p>No more manual deletion of cabal files necessary <img src='http://therning.org/magnus/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
</channel>
</rss>
