<?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 for Martijn's Journal</title>
	<atom:link href="http://martijn.van.steenbergen.nl/journal/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://martijn.van.steenbergen.nl/journal</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 22 Dec 2009 16:26:55 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Sneeuw at Warande by arne</title>
		<link>http://martijn.van.steenbergen.nl/journal/2009/12/21/sneeuw-at-warande/comment-page-1/#comment-3345</link>
		<dc:creator>arne</dc:creator>
		<pubDate>Tue, 22 Dec 2009 16:26:55 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=458#comment-3345</guid>
		<description>Awesome! Ik wil ook sneeuw :(</description>
		<content:encoded><![CDATA[<p>Awesome! Ik wil ook sneeuw <img src='http://martijn.van.steenbergen.nl/journal/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Midwinter Fair 2009 by Sjoerd Visscher</title>
		<link>http://martijn.van.steenbergen.nl/journal/2009/12/13/midwinter-fair-2009/comment-page-1/#comment-3341</link>
		<dc:creator>Sjoerd Visscher</dc:creator>
		<pubDate>Sun, 13 Dec 2009 23:05:06 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=454#comment-3341</guid>
		<description>Foto #13 is mijn favoriet. Erg mooie compositie en betoverende kleuren.</description>
		<content:encoded><![CDATA[<p>Foto #13 is mijn favoriet. Erg mooie compositie en betoverende kleuren.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on GADTs in Haskell 98 by Bob Atkey</title>
		<link>http://martijn.van.steenbergen.nl/journal/2009/11/12/gadts-in-haskell-98/comment-page-1/#comment-2894</link>
		<dc:creator>Bob Atkey</dc:creator>
		<pubDate>Fri, 13 Nov 2009 12:28:15 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=447#comment-2894</guid>
		<description>Unfortunately, not all GADTs can be expressed faithfully in this way, due to &quot;leakage&quot; between the types used for representation and the type parameters in the constructors. An example is given in Section 4 of the paper &quot;Unembedding domain-specific languages&quot; (available from my home page), where we called them &quot;exotically typed terms&quot;. The example in the paper involves Higher-Order Abstract Syntax, but it still happens when you have no negative occurrences of the type variable: a simple example is a GADT for representing typed S and K combinators with application. The problem seems to occur when there is a type parameter inside a GADT term that does not appear on the outside of the term.

Fortunately, all is not lost (if you allow yourself Haskell98 + Rank-2 polymorphism + existential types). One can still represent the Equality GADT as a type class (with single method refl :: f a a), and then use Neil Ghani and Patty Johann&#039;s decomposition of GADTs into normal algebraic datatypes plus the equality GADT. Oleg did this in OCaml in a post to the OCaml mailing list. A disadvantage of this approach is that you have to apply the type equalities by hand.</description>
		<content:encoded><![CDATA[<p>Unfortunately, not all GADTs can be expressed faithfully in this way, due to &#8220;leakage&#8221; between the types used for representation and the type parameters in the constructors. An example is given in Section 4 of the paper &#8220;Unembedding domain-specific languages&#8221; (available from my home page), where we called them &#8220;exotically typed terms&#8221;. The example in the paper involves Higher-Order Abstract Syntax, but it still happens when you have no negative occurrences of the type variable: a simple example is a GADT for representing typed S and K combinators with application. The problem seems to occur when there is a type parameter inside a GADT term that does not appear on the outside of the term.</p>
<p>Fortunately, all is not lost (if you allow yourself Haskell98 + Rank-2 polymorphism + existential types). One can still represent the Equality GADT as a type class (with single method refl :: f a a), and then use Neil Ghani and Patty Johann&#8217;s decomposition of GADTs into normal algebraic datatypes plus the equality GADT. Oleg did this in OCaml in a post to the OCaml mailing list. A disadvantage of this approach is that you have to apply the type equalities by hand.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on GADTs in Haskell 98 by Chung-chieh Shan</title>
		<link>http://martijn.van.steenbergen.nl/journal/2009/11/12/gadts-in-haskell-98/comment-page-1/#comment-2892</link>
		<dc:creator>Chung-chieh Shan</dc:creator>
		<pubDate>Fri, 13 Nov 2009 08:45:36 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=447#comment-2892</guid>
		<description>Jacques Carette and Oleg Kiselyov and I wrote up some more things that one can do (and have been done) in this way: &lt;a href=&quot;http://www.cs.rutgers.edu/~ccshan/tagless/jfp.pdf&quot; rel=&quot;nofollow&quot;&gt;&quot;Finally
tagless, partially evaluated: Tagless staged interpreters for simpler
typed languages.&quot; Journal of Functional Programming 19(5):509-543.&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Jacques Carette and Oleg Kiselyov and I wrote up some more things that one can do (and have been done) in this way: <a href="http://www.cs.rutgers.edu/~ccshan/tagless/jfp.pdf" rel="nofollow">&#8220;Finally<br />
tagless, partially evaluated: Tagless staged interpreters for simpler<br />
typed languages.&#8221; Journal of Functional Programming 19(5):509-543.</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myst III On Leopard Intel by Gary</title>
		<link>http://martijn.van.steenbergen.nl/journal/2008/04/08/myst-iii-on-leopard-intel/comment-page-1/#comment-2891</link>
		<dc:creator>Gary</dc:creator>
		<pubDate>Fri, 13 Nov 2009 02:39:33 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/2008/04/08/myst-iii-on-leopard-intel/#comment-2891</guid>
		<description>Ray and Martijn, I can confirm that this procedure does not work with the DVD version I have included with Myst IV Revelation, sadly. After dragging the data and M3T folders into the disk image, the Exile app crashes with a JPEG error, suggesting an issue with the latest Quicktime version. I don&#039;t think it will be easily solved.
Even the OSX Exile installer on the DVD does not work :(

Gary</description>
		<content:encoded><![CDATA[<p>Ray and Martijn, I can confirm that this procedure does not work with the DVD version I have included with Myst IV Revelation, sadly. After dragging the data and M3T folders into the disk image, the Exile app crashes with a JPEG error, suggesting an issue with the latest Quicktime version. I don&#8217;t think it will be easily solved.<br />
Even the OSX Exile installer on the DVD does not work <img src='http://martijn.van.steenbergen.nl/journal/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Gary</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on GADTs in Haskell 98 by Brent Yorgey</title>
		<link>http://martijn.van.steenbergen.nl/journal/2009/11/12/gadts-in-haskell-98/comment-page-1/#comment-2888</link>
		<dc:creator>Brent Yorgey</dc:creator>
		<pubDate>Thu, 12 Nov 2009 17:58:08 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=447#comment-2888</guid>
		<description>Aha, I never realized you could encode GADTs as type classes like this!  Simple once you see it.  Thanks for sharing!</description>
		<content:encoded><![CDATA[<p>Aha, I never realized you could encode GADTs as type classes like this!  Simple once you see it.  Thanks for sharing!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on GADTs in Haskell 98 by jj</title>
		<link>http://martijn.van.steenbergen.nl/journal/2009/11/12/gadts-in-haskell-98/comment-page-1/#comment-2884</link>
		<dc:creator>jj</dc:creator>
		<pubDate>Thu, 12 Nov 2009 14:08:10 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=447#comment-2884</guid>
		<description>What I like about GADTs is not what they let us do, but what they stop us from doing. The standard GADT example you show makes it impossible to produce an ill-typed Term (not term, Term) without using error or naughty recursion. Using the type class TermC, you have to either give up pattern matching or type safety.</description>
		<content:encoded><![CDATA[<p>What I like about GADTs is not what they let us do, but what they stop us from doing. The standard GADT example you show makes it impossible to produce an ill-typed Term (not term, Term) without using error or naughty recursion. Using the type class TermC, you have to either give up pattern matching or type safety.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Transforming polymorphic values by Martijn&#8217;s Journal &#187; GADTs in Haskell 98</title>
		<link>http://martijn.van.steenbergen.nl/journal/2009/10/18/transforming-polymorphic-values/comment-page-1/#comment-2882</link>
		<dc:creator>Martijn&#8217;s Journal &#187; GADTs in Haskell 98</dc:creator>
		<pubDate>Thu, 12 Nov 2009 11:27:34 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=424#comment-2882</guid>
		<description>[...] Transforming polymorphic values [...]</description>
		<content:encoded><![CDATA[<p>[...] Transforming polymorphic values [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Transforming polymorphic values by Linktipps #17 :: Blackflash</title>
		<link>http://martijn.van.steenbergen.nl/journal/2009/10/18/transforming-polymorphic-values/comment-page-1/#comment-2208</link>
		<dc:creator>Linktipps #17 :: Blackflash</dc:creator>
		<pubDate>Sun, 25 Oct 2009 13:22:20 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=424#comment-2208</guid>
		<description>[...]  [...]</description>
		<content:encoded><![CDATA[<p>[...]  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Transforming polymorphic values by Martijn</title>
		<link>http://martijn.van.steenbergen.nl/journal/2009/10/18/transforming-polymorphic-values/comment-page-1/#comment-2179</link>
		<dc:creator>Martijn</dc:creator>
		<pubDate>Tue, 20 Oct 2009 07:24:55 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=424#comment-2179</guid>
		<description>@Brent thanks for the feedback! Ah, I didn&#039;t know it had a name already. Thanks for that.

@augustss Can you elaborate a bit? I hope this simplification doesn&#039;t hurt in the context of simple arithmetic expressions?</description>
		<content:encoded><![CDATA[<p>@Brent thanks for the feedback! Ah, I didn&#8217;t know it had a name already. Thanks for that.</p>
<p>@augustss Can you elaborate a bit? I hope this simplification doesn&#8217;t hurt in the context of simple arithmetic expressions?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
