<?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: Data.MemoCombinators and You</title>
	<atom:link href="http://www.amateurtopologist.com/2009/11/22/data-memocombinators-and-you/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.amateurtopologist.com/2009/11/22/data-memocombinators-and-you/</link>
	<description>Politics, programming, math, and science.</description>
	<lastBuildDate>Wed, 03 Mar 2010 11:58:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: uberVU - social comments</title>
		<link>http://www.amateurtopologist.com/2009/11/22/data-memocombinators-and-you/comment-page-1/#comment-19</link>
		<dc:creator>uberVU - social comments</dc:creator>
		<pubDate>Mon, 23 Nov 2009 17:27:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.amateurtopologist.com/?p=446#comment-19</guid>
		<description>&lt;strong&gt;Social comments and analytics for this post...&lt;/strong&gt;

This post was mentioned on Twitter by ranha: Data.MemoCombinators http://bit.ly/7jm2oE...</description>
		<content:encoded><![CDATA[<p><strong>Social comments and analytics for this post&#8230;</strong></p>
<p>This post was mentioned on Twitter by ranha: Data.MemoCombinators <a href="http://bit.ly/7jm2oE.." rel="nofollow">http://bit.ly/7jm2oE..</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luke Palmer</title>
		<link>http://www.amateurtopologist.com/2009/11/22/data-memocombinators-and-you/comment-page-1/#comment-18</link>
		<dc:creator>Luke Palmer</dc:creator>
		<pubDate>Mon, 23 Nov 2009 17:26:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.amateurtopologist.com/?p=446#comment-18</guid>
		<description>The problem with MemoTrie is the standard typeclass problem of one instance per type.  So, for example, MemoTrie&#039;s Integer memoizer is the same as integral from MemoCombinators, which is not the most efficient implementation (it just wraps it to a list of bits).  A better implementation would, say, be a 4-bit patricia tree using fast bitshifts.  You could happily write this as a new MemoCombinator of type Memo Integer, but MemoTrie already has a memoizer for Integer so you have to do some newtype madness to convince the type system that it is a different type when really it&#039;s not.

So not only is it hard to memoize types it doesn&#039;t give you (well, you declare new instances, but that risks orphans), it is hard to build new memo tables for types it *does* give you.

Note that I have author&#039;s bias. :-)</description>
		<content:encoded><![CDATA[<p>The problem with MemoTrie is the standard typeclass problem of one instance per type.  So, for example, MemoTrie&#8217;s Integer memoizer is the same as integral from MemoCombinators, which is not the most efficient implementation (it just wraps it to a list of bits).  A better implementation would, say, be a 4-bit patricia tree using fast bitshifts.  You could happily write this as a new MemoCombinator of type Memo Integer, but MemoTrie already has a memoizer for Integer so you have to do some newtype madness to convince the type system that it is a different type when really it&#8217;s not.</p>
<p>So not only is it hard to memoize types it doesn&#8217;t give you (well, you declare new instances, but that risks orphans), it is hard to build new memo tables for types it *does* give you.</p>
<p>Note that I have author&#8217;s bias. <img src='http://www.amateurtopologist.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
