<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Haskell Is Exceptionally Unsafe</title>
	<atom:link href="http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/feed/" rel="self" type="application/rss+xml" />
	<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/</link>
	<description>Abstract types are existential types.</description>
	<lastBuildDate>Tue, 29 Jan 2013 15:10:50 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Robert Harper</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1032</link>
		<dc:creator><![CDATA[Robert Harper]]></dc:creator>
		<pubDate>Fri, 17 Aug 2012 11:22:28 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1032</guid>
		<description><![CDATA[Opinions vary on whether it is feasible to do so.]]></description>
		<content:encoded><![CDATA[<p>Opinions vary on whether it is feasible to do so.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hydo</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1031</link>
		<dc:creator><![CDATA[hydo]]></dc:creator>
		<pubDate>Fri, 17 Aug 2012 00:43:17 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1031</guid>
		<description><![CDATA[Regarding unsafePerformIO, I just pretend it doesn&#039;t exist and thus never use it.  If I find myself thinking about using it, I rethink the problem.]]></description>
		<content:encoded><![CDATA[<p>Regarding unsafePerformIO, I just pretend it doesn&#8217;t exist and thus never use it.  If I find myself thinking about using it, I rethink the problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: reuleaux</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1030</link>
		<dc:creator><![CDATA[reuleaux]]></dc:creator>
		<pubDate>Thu, 16 Aug 2012 20:58:13 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1030</guid>
		<description><![CDATA[OK, thanks for this clarification, and of course for sharing the book.]]></description>
		<content:encoded><![CDATA[<p>OK, thanks for this clarification, and of course for sharing the book.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Derek Dreyer</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1029</link>
		<dc:creator><![CDATA[Derek Dreyer]]></dc:creator>
		<pubDate>Wed, 15 Aug 2012 22:49:09 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1029</guid>
		<description><![CDATA[I haven&#039;t studied this topic at all, but Blume, Acar and Chae worked out something along the lines of what Neel is suggesting in quite some detail in their APLAS&#039;08 paper: http://people.cs.uchicago.edu/~blume/papers/aplas08-exceptions.pdf]]></description>
		<content:encoded><![CDATA[<p>I haven&#8217;t studied this topic at all, but Blume, Acar and Chae worked out something along the lines of what Neel is suggesting in quite some detail in their APLAS&#8217;08 paper: <a href="http://people.cs.uchicago.edu/~blume/papers/aplas08-exceptions.pdf" rel="nofollow">http://people.cs.uchicago.edu/~blume/papers/aplas08-exceptions.pdf</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Spiewak (@djspiewak)</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1028</link>
		<dc:creator><![CDATA[Daniel Spiewak (@djspiewak)]]></dc:creator>
		<pubDate>Wed, 15 Aug 2012 21:00:53 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1028</guid>
		<description><![CDATA[undefined is a valid value in the same way that `foo where foo = foo` is a valid value.  Which is to say, only if you don&#039;t evaluate it.  Getting a value with bottom type and then ascribing a non-bottom type to it is going to be unsound by definition.  You started with a contradiction, which you used to prove something.  That&#039;s not interesting, because &quot;something&quot; in this case could be anything whatsoever.]]></description>
		<content:encoded><![CDATA[<p>undefined is a valid value in the same way that `foo where foo = foo` is a valid value.  Which is to say, only if you don&#8217;t evaluate it.  Getting a value with bottom type and then ascribing a non-bottom type to it is going to be unsound by definition.  You started with a contradiction, which you used to prove something.  That&#8217;s not interesting, because &#8220;something&#8221; in this case could be anything whatsoever.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Harper</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1026</link>
		<dc:creator><![CDATA[Robert Harper]]></dc:creator>
		<pubDate>Wed, 15 Aug 2012 19:50:05 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1026</guid>
		<description><![CDATA[undefined is a perfectly good value in Haskell; it&#039;s the point of the call-by-name semantics.]]></description>
		<content:encoded><![CDATA[<p>undefined is a perfectly good value in Haskell; it&#8217;s the point of the call-by-name semantics.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Harper</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1025</link>
		<dc:creator><![CDATA[Robert Harper]]></dc:creator>
		<pubDate>Wed, 15 Aug 2012 19:49:28 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1025</guid>
		<description><![CDATA[We were talking cross-purposes.  I&#039;m referring to a built-in symbol type, you&#039;re referring to ezyang&#039;s hacked up version in Haskell.]]></description>
		<content:encoded><![CDATA[<p>We were talking cross-purposes.  I&#8217;m referring to a built-in symbol type, you&#8217;re referring to ezyang&#8217;s hacked up version in Haskell.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ganesh Sittampalam</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1024</link>
		<dc:creator><![CDATA[Ganesh Sittampalam]]></dc:creator>
		<pubDate>Wed, 15 Aug 2012 17:36:58 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1024</guid>
		<description><![CDATA[But ezyang&#039;s code is also based on type casting, which is why it can be broken if the Sym constructor is exposed.

He mentions an alternative using an type equality witness, so perhaps it&#039;s not essential, but the details of how that&#039;d work aren&#039;t obvious to me.]]></description>
		<content:encoded><![CDATA[<p>But ezyang&#8217;s code is also based on type casting, which is why it can be broken if the Sym constructor is exposed.</p>
<p>He mentions an alternative using an type equality witness, so perhaps it&#8217;s not essential, but the details of how that&#8217;d work aren&#8217;t obvious to me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Spiewak (@djspiewak)</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1023</link>
		<dc:creator><![CDATA[Daniel Spiewak (@djspiewak)]]></dc:creator>
		<pubDate>Wed, 15 Aug 2012 16:13:11 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1023</guid>
		<description><![CDATA[From a strictly theoretical standpoint, you would need to show the compiler exploding *without* using undefined in order to demonstrate unsoundness.  It&#039;s really not fair to take a feature that is already *known* to be unsound, compose it with some other features and then use the results to claim that one of those other features is also unsound.  I&#039;m not saying your point is invalid, but you haven&#039;t really proven it.]]></description>
		<content:encoded><![CDATA[<p>From a strictly theoretical standpoint, you would need to show the compiler exploding *without* using undefined in order to demonstrate unsoundness.  It&#8217;s really not fair to take a feature that is already *known* to be unsound, compose it with some other features and then use the results to claim that one of those other features is also unsound.  I&#8217;m not saying your point is invalid, but you haven&#8217;t really proven it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Harper</title>
		<link>http://existentialtype.wordpress.com/2012/08/14/haskell-is-exceptionally-unsafe/#comment-1022</link>
		<dc:creator><![CDATA[Robert Harper]]></dc:creator>
		<pubDate>Wed, 15 Aug 2012 14:41:55 +0000</pubDate>
		<guid isPermaLink="false">http://existentialtype.wordpress.com/?p=627#comment-1022</guid>
		<description><![CDATA[That&#039;s news to me.  The published version will differ slightly from the online version, but the reduction in length is solely due to the formatting, not to restrictions on the content.]]></description>
		<content:encoded><![CDATA[<p>That&#8217;s news to me.  The published version will differ slightly from the online version, but the reduction in length is solely due to the formatting, not to restrictions on the content.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
