<?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: Deeply embedded DSLs in Haskell: overloading everything under the sun</title>
	<atom:link href="http://tom.lokhorst.eu/2009/09/deeply-embedded-dsls/feed" rel="self" type="application/rss+xml" />
	<link>http://tom.lokhorst.eu/2009/09/deeply-embedded-dsls</link>
	<description>Writings from a happy Haskell coder.</description>
	<lastBuildDate>Tue, 05 Jun 2012 02:57:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Tom Lokhorst</title>
		<link>http://tom.lokhorst.eu/2009/09/deeply-embedded-dsls/comment-page-1#comment-154</link>
		<dc:creator>Tom Lokhorst</dc:creator>
		<pubDate>Mon, 07 Sep 2009 22:54:09 +0000</pubDate>
		<guid isPermaLink="false">http://tom.lokhorst.eu/?p=229#comment-154</guid>
		<description>&lt;p&gt;I&#039;m not too happy with the fundep either, but didn&#039;t see a way to avoid it.&lt;/p&gt;

&lt;p&gt;However, Lennart Augustsson &lt;a href=&quot;http://www.reddit.com/r/haskell/comments/9he2r/deeply_embedded_dsls_in_haskell_overloading/c0cv4v3&quot; rel=&quot;nofollow&quot;&gt;suggested&lt;/a&gt; splitting out the &lt;code&gt;bool&lt;/code&gt; function to a separate type class. Just like the &lt;code&gt;IfB&lt;/code&gt; type class you have in you &lt;a href=&quot;http://hackage.haskell.org/package/Boolean&quot; rel=&quot;nofollow&quot;&gt;&lt;code&gt;Boolean&lt;/code&gt;&lt;/a&gt; package.&lt;/p&gt;

&lt;p&gt;I hadn&#039;t thought of defining the generalized constructors and destructors to a data type in two separate type classes, and somehow had read over both of you using that. I&#039;m definitely going to try to do this on all types in the AwesomePrelude to see if it works everywhere. Tomorrow, anyway.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#8217;m not too happy with the fundep either, but didn&#8217;t see a way to avoid it.</p>

<p>However, Lennart Augustsson <a href="http://www.reddit.com/r/haskell/comments/9he2r/deeply_embedded_dsls_in_haskell_overloading/c0cv4v3" rel="nofollow">suggested</a> splitting out the <code>bool</code> function to a separate type class. Just like the <code>IfB</code> type class you have in you <a href="http://hackage.haskell.org/package/Boolean" rel="nofollow"><code>Boolean</code></a> package.</p>

<p>I hadn&#8217;t thought of defining the generalized constructors and destructors to a data type in two separate type classes, and somehow had read over both of you using that. I&#8217;m definitely going to try to do this on all types in the AwesomePrelude to see if it works everywhere. Tomorrow, anyway.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott</title>
		<link>http://tom.lokhorst.eu/2009/09/deeply-embedded-dsls/comment-page-1#comment-152</link>
		<dc:creator>Conal Elliott</dc:creator>
		<pubDate>Mon, 07 Sep 2009 16:12:33 +0000</pubDate>
		<guid isPermaLink="false">http://tom.lokhorst.eu/?p=229#comment-152</guid>
		<description>&lt;p&gt;I love this idea!&lt;/p&gt;

&lt;p&gt;And I&#039;m confused about the functional dependency: &quot;f -&gt; r&quot;, in &quot;bool :: r -&gt; r -&gt; f -&gt; r&quot;.  I see that you have &quot;Equal :: Expr Integer -&gt; Expr Integer -&gt; Expr Bool&quot;, so I guess the dependency works out, but I guess it would break if you generalized at all.  For instance, I&#039;d want instead &quot;Equal :: Eq a =&gt; Expr a -&gt; Expr a -&gt; Expr a&quot; (plus an additional syntax-motivated constraints on a).&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I love this idea!</p>

<p>And I&#8217;m confused about the functional dependency: &#8220;f -&gt; r&#8221;, in &#8220;bool :: r -&gt; r -&gt; f -&gt; r&#8221;.  I see that you have &#8220;Equal :: Expr Integer -&gt; Expr Integer -&gt; Expr Bool&#8221;, so I guess the dependency works out, but I guess it would break if you generalized at all.  For instance, I&#8217;d want instead &#8220;Equal :: Eq a =&gt; Expr a -&gt; Expr a -&gt; Expr a&#8221; (plus an additional syntax-motivated constraints on a).</p>]]></content:encoded>
	</item>
</channel>
</rss>
