<?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: Introducing JsonGrammar</title>
	<atom:link href="http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/feed/" rel="self" type="application/rss+xml" />
	<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Mon, 13 May 2013 18:02:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
	<item>
		<title>By: g</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-373</link>
		<dc:creator>g</dc:creator>
		<pubDate>Mon, 11 Jun 2012 02:23:36 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-373</guid>
		<description>Hi, Quoridor doesn&#039;t work on Lion.

Thx</description>
		<content:encoded><![CDATA[<p>Hi, Quoridor doesn&#8217;t work on Lion.</p>
<p>Thx</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martijn</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-372</link>
		<dc:creator>Martijn</dc:creator>
		<pubDate>Fri, 13 May 2011 10:37:12 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-372</guid>
		<description>Yes, this might be a problem. In this sense &#039;inverse&#039; is a poor name. I wonder how hard Sjoerd&#039;s suggestion would be to implement.

For JSON grammars it might actually be a feature: you can map two different JSON constructs to the same Haskell value, and on the way back consistenly map the Haskell value to the preferred of the two JSON constructs.

Btw, I fixed the missing &lt;&gt;s in your comment.</description>
		<content:encoded><![CDATA[<p>Yes, this might be a problem. In this sense &#8216;inverse&#8217; is a poor name. I wonder how hard Sjoerd&#8217;s suggestion would be to implement.</p>
<p>For JSON grammars it might actually be a feature: you can map two different JSON constructs to the same Haskell value, and on the way back consistenly map the Haskell value to the preferred of the two JSON constructs.</p>
<p>Btw, I fixed the missing &lt;&gt;s in your comment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sjoerd Visscher</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-371</link>
		<dc:creator>Sjoerd Visscher</dc:creator>
		<pubDate>Fri, 13 May 2011 10:18:45 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-371</guid>
		<description>There&#039;s a kind of underlying assumption that &lt;&gt; is used on disjoint pattern matches. It would be nice to have a way to check that this is always the case, and also that there are no cases missing when pattern matching.</description>
		<content:encoded><![CDATA[<p>There&#8217;s a kind of underlying assumption that &lt;&gt; is used on disjoint pattern matches. It would be nice to have a way to check that this is always the case, and also that there are no cases missing when pattern matching.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tillmann Rendel</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-370</link>
		<dc:creator>Tillmann Rendel</dc:creator>
		<pubDate>Thu, 12 May 2011 23:50:36 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-370</guid>
		<description>I looked at your Semigroup instance, and I am not sure I like it. Consider the following two partial isomorphisms:

  iso1, iso2 :: Iso Char ()
  iso1 = unstack (unit . inverse (lit &#039;x&#039;))
  iso2 = unstack (unit . inverse (lit &#039;y&#039;))

In isolation, these partial isomorphisms are fine. But (iso1 &lt;&gt; iso2) has a problem: It is not really inverse to (inverse (iso1 &lt;&gt; iso2)). 

  &gt; convert (iso1 &lt;&gt; iso2) &#039;y&#039;
  Just ()

  &gt; convert (inverse (iso1 &lt;&gt; iso2)) ()
  Just &#039;x&#039;.

Oups. We successfully converted from Char to () and back to Char, but we arrived at a different character. I am not sure how serios that problem is in your setting.

From a theoretical point of view, I believe this problem is fundamental with partial isomorphisms: They do not really support choice. That is why in our paper, we used partial isomorphisms only for semantic actions, and built the additional layer of syntax descriptions on top of it.</description>
		<content:encoded><![CDATA[<p>I looked at your Semigroup instance, and I am not sure I like it. Consider the following two partial isomorphisms:</p>
<p>  iso1, iso2 :: Iso Char ()<br />
  iso1 = unstack (unit . inverse (lit &#8216;x&#8217;))<br />
  iso2 = unstack (unit . inverse (lit &#8216;y&#8217;))</p>
<p>In isolation, these partial isomorphisms are fine. But (iso1 &lt;&gt; iso2) has a problem: It is not really inverse to (inverse (iso1 &lt;&gt; iso2)). </p>
<p>  > convert (iso1 &lt;&gt; iso2) &#8216;y&#8217;<br />
  Just ()</p>
<p>  > convert (inverse (iso1 &lt;&gt; iso2)) ()<br />
  Just &#8216;x&#8217;.</p>
<p>Oups. We successfully converted from Char to () and back to Char, but we arrived at a different character. I am not sure how serios that problem is in your setting.</p>
<p>From a theoretical point of view, I believe this problem is fundamental with partial isomorphisms: They do not really support choice. That is why in our paper, we used partial isomorphisms only for semantic actions, and built the additional layer of syntax descriptions on top of it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martijn</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-369</link>
		<dc:creator>Martijn</dc:creator>
		<pubDate>Tue, 10 May 2011 21:10:11 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-369</guid>
		<description>I actually have already, Yitz! :-) I hope his package gains some more popularity. Thank you for your comment!</description>
		<content:encoded><![CDATA[<p>I actually have already, Yitz! <img src='http://martijn.van.steenbergen.nl/journal/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  I hope his package gains some more popularity. Thank you for your comment!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yitz</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-368</link>
		<dc:creator>Yitz</dc:creator>
		<pubDate>Tue, 10 May 2011 13:20:47 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-368</guid>
		<description>Very nice ideas, Martijn!

&gt; The &lt;&gt; is just another name for mappend from Data.Monoid

Can you make it be  from Edward Kmett&#039;s semigroups package instead? Otherwise, your module will be less convenient to use with any program that uses a datatype which is a semigroup but not a monoid. Now that I noticed the semigroups package, I am finding more and more of those...</description>
		<content:encoded><![CDATA[<p>Very nice ideas, Martijn!</p>
<p>> The &lt;&gt; is just another name for mappend from Data.Monoid</p>
<p>Can you make it be  from Edward Kmett&#8217;s semigroups package instead? Otherwise, your module will be less convenient to use with any program that uses a datatype which is a semigroup but not a monoid. Now that I noticed the semigroups package, I am finding more and more of those&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Done</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-367</link>
		<dc:creator>Chris Done</dc:creator>
		<pubDate>Tue, 10 May 2011 06:56:29 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-367</guid>
		<description>solrize: Text.JSON.Generic generates based on Data and Typeable, but you don&#039;t get any control over the mapping (which you really need most of the time).</description>
		<content:encoded><![CDATA[<p>solrize: Text.JSON.Generic generates based on Data and Typeable, but you don&#8217;t get any control over the mapping (which you really need most of the time).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martijn</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-366</link>
		<dc:creator>Martijn</dc:creator>
		<pubDate>Mon, 09 May 2011 19:19:30 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-366</guid>
		<description>@solrize Yup, it&#039;s called &lt;a href=&quot;http://hackage.haskell.org/package/json&quot; rel=&quot;nofollow&quot;&gt;json&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>@solrize Yup, it&#8217;s called <a href="http://hackage.haskell.org/package/json" rel="nofollow">json</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: solrize</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-365</link>
		<dc:creator>solrize</dc:creator>
		<pubDate>Mon, 09 May 2011 16:33:39 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-365</guid>
		<description>I thought there was a json package from Galois that used SYB to generate the conversion functions.  I actually remember using it but have forgotten what package it was or exactly what it did.</description>
		<content:encoded><![CDATA[<p>I thought there was a json package from Galois that used SYB to generate the conversion functions.  I actually remember using it but have forgotten what package it was or exactly what it did.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martijn</title>
		<link>http://martijn.van.steenbergen.nl/journal/2011/05/08/introducing-jsongrammar/#comment-364</link>
		<dc:creator>Martijn</dc:creator>
		<pubDate>Mon, 09 May 2011 13:17:31 +0000</pubDate>
		<guid isPermaLink="false">http://martijn.van.steenbergen.nl/journal/?p=540#comment-364</guid>
		<description>Good question, Chris. To be honest I haven&#039;t given fclabels much thought (although I really should). Quick answer: I don&#039;t think fclabels supports failure.</description>
		<content:encoded><![CDATA[<p>Good question, Chris. To be honest I haven&#8217;t given fclabels much thought (although I really should). Quick answer: I don&#8217;t think fclabels supports failure.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
