<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-11295132.post114678350869465376..comments</id><updated>2012-01-20T08:10:18.554-08:00</updated><category term='category theory'/><category term='lawvere theories'/><category term='astronomy'/><category term='optimisation'/><category term='self-reference'/><category term='comonads'/><category term='haskell'/><category term='programming'/><category term='monad'/><category term='mathematics'/><category term='physics'/><category term='probability'/><category term='types'/><category term='quantum'/><title type='text'>Comments on A Neighborhood of Infinity: Grok Haskell Monad Transformers</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.sigfpe.com/feeds/114678350869465376/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html'/><author><name>sigfpe</name><uri>http://www.blogger.com/profile/08096190433222340957</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://homepage.mac.com/sigfpe/.Pictures/Photo%20Album%20Pictures/2002-12-07%2014.53.40%20-0800/ImageDSC01397_1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11295132.post-7205918627818276711</id><published>2012-01-19T18:58:42.401-08:00</published><updated>2012-01-19T18:58:42.401-08:00</updated><title type='text'>Here&amp;#39;s another nice and thorough and typeset :...</title><content type='html'>Here&amp;#39;s another nice and thorough and typeset :-) tutorial, posted shortly after sigfpe&amp;#39;s original:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.grabmueller.de/martin/www/pub/Transformers.en.html</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/7205918627818276711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/7205918627818276711'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1327028322401#c7205918627818276711' title=''/><author><name>Michael Roger</name><uri>http://www.blogger.com/profile/08729150476888743293</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1926907188'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-4073441747708634849</id><published>2011-07-20T17:19:53.216-07:00</published><updated>2011-07-20T17:19:53.216-07:00</updated><title type='text'>Can not agree more with your comments on those fak...</title><content type='html'>Can not agree more with your comments on those fake tutorials. This is just what I want to know. After using that for few weeks, I will begin to understand what Transformer really is.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/4073441747708634849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/4073441747708634849'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1311207593216#c4073441747708634849' title=''/><author><name>雪夜读书</name><uri>http://www.blogger.com/profile/08397652907635644020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-45436328'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-3083961799055612329</id><published>2011-07-20T17:18:03.479-07:00</published><updated>2011-07-20T17:18:03.479-07:00</updated><title type='text'>Can not agree any more with your comments on those...</title><content type='html'>Can not agree any more with your comments on those egghead&amp;#39;s explanation on Monad Transformers. Thanks a lot. Really what I want to know.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/3083961799055612329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/3083961799055612329'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1311207483479#c3083961799055612329' title=''/><author><name>雪夜读书</name><uri>http://www.blogger.com/profile/08397652907635644020</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-45436328'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-7186628857873620889</id><published>2010-11-30T22:24:14.922-08:00</published><updated>2010-11-30T22:24:14.922-08:00</updated><title type='text'>Yeah, I&amp;#39;m going to have to agree with sigfpe.....</title><content type='html'>Yeah, I&amp;#39;m going to have to agree with sigfpe... it&amp;#39;s really just up to you how you want to do it. Sometimes multiple solutions stink!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/7186628857873620889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/7186628857873620889'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1291184654922#c7186628857873620889' title=''/><author><name>Mitchell</name><uri>http://magnetechtransformerrepair.com/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1481310867'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-4920451314431284661</id><published>2009-03-25T23:16:00.000-07:00</published><updated>2009-03-25T23:16:00.000-07:00</updated><title type='text'>For those wondering why you would want to use this...</title><content type='html'>For those wondering why you would want to use this: as an example, I'm trying to implement Ruby Quiz 19 (Yahtzee).  How am I supposed to set up an interactive loop with the user and save the current score and random state (for die rolls) throughout the loop?  You can't do IO () stuff like putStrLn to show dice rolls while using State (Score,StdGen) x because your return type is no longer IO ().  But with something like the test5 example, it's now entirely possible.  A terrible workaround would've been to use IO () to read/write the state to a file... Now I can StateT (Score,StdGen) IO () and all is solved.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/4920451314431284661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/4920451314431284661'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1238048160000#c4920451314431284661' title=''/><author><name>Sean Kanaley</name><uri>http://www.blogger.com/profile/06567427255740163613</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1181095241'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-2083933125536860343</id><published>2009-02-21T16:10:00.000-08:00</published><updated>2009-02-21T16:10:00.000-08:00</updated><title type='text'>chessguy,&lt;br&gt;&lt;br&gt;It's up to you. If you're bothere...</title><content type='html'>chessguy,&lt;BR/&gt;&lt;BR/&gt;It's up to you. If you're bothered by the lack of symmetry from having a StateT and a State then you can use the Identitiy monad.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/2083933125536860343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/2083933125536860343'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1235261400000#c2083933125536860343' title=''/><author><name>sigfpe</name><uri>http://www.blogger.com/profile/08096190433222340957</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://homepage.mac.com/sigfpe/.Pictures/Photo%20Album%20Pictures/2002-12-07%2014.53.40%20-0800/ImageDSC01397_1.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-961546855'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-1110208968238572284</id><published>2009-02-21T15:44:00.000-08:00</published><updated>2009-02-21T15:44:00.000-08:00</updated><title type='text'>Hmm, do you really need to wrap this around Identi...</title><content type='html'>Hmm, do you really need to wrap this around Identity? Can't you just stack StateT on top of State to just get sort of a DoubleState monad?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/1110208968238572284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/1110208968238572284'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1235259840000#c1110208968238572284' title=''/><author><name>chessguy</name><uri>http://www.blogger.com/profile/08385143488045909734</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_RkgCRTbJKzI/SK3Jq2Du3lI/AAAAAAAAAAQ/L0dNYLiKnts/S220/n649900936_4549.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-767552'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-5157023308641927168</id><published>2008-03-23T13:16:00.000-07:00</published><updated>2008-03-23T13:16:00.000-07:00</updated><title type='text'>This post is really great. Thanks!</title><content type='html'>This post is really great. Thanks!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/5157023308641927168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/5157023308641927168'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1206303360000#c5157023308641927168' title=''/><author><name>Krzysztof "Tener" S.</name><uri>http://www.blogger.com/profile/06657309948578892831</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://www.videomed.com.pl/tener/blog/PICT5555.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1823435364'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-6905513518816659178</id><published>2007-12-03T06:44:00.000-08:00</published><updated>2007-12-03T06:44:00.000-08:00</updated><title type='text'>Very helpful post, thanks!&lt;br&gt;&lt;br&gt;One thing - did ...</title><content type='html'>Very helpful post, thanks!&lt;BR/&gt;&lt;BR/&gt;One thing - did you mean to say "Try :type test3 in ghci." rather than :type go3 ?&lt;BR/&gt;&lt;BR/&gt;The latter just yields:&lt;BR/&gt;go3 :: (Integer, [Char])</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/6905513518816659178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/6905513518816659178'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1196693040000#c6905513518816659178' title=''/><author><name>yaxu</name><uri>http://www.blogger.com/profile/15563877134268148264</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1332089368'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-2611503775908504856</id><published>2007-05-25T17:44:00.000-07:00</published><updated>2007-05-25T17:44:00.000-07:00</updated><title type='text'>Tim,&lt;br&gt;&lt;br&gt;Exactly. Except that if you just have ...</title><content type='html'>Tim,&lt;BR/&gt;&lt;BR/&gt;Exactly. Except that if you just have two types then one can be an ordinary monad, and the other can be a monad transformer. Or you can use three levels where both the reader and the writer are monad transformers and they are applied to the identity monad. (I do the former in this post.)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/2611503775908504856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/2611503775908504856'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1180140240000#c2611503775908504856' title=''/><author><name>sigfpe</name><uri>http://www.blogger.com/profile/08096190433222340957</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-961546855'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-3225625147286561695</id><published>2007-05-25T17:09:00.000-07:00</published><updated>2007-05-25T17:09:00.000-07:00</updated><title type='text'>So, if I wanted two kinds of state, one readable a...</title><content type='html'>So, if I wanted two kinds of state, one readable and one readable and writable, I could wrap a StateT in a ReaderT?  Or vice versa?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/3225625147286561695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/3225625147286561695'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1180138140000#c3225625147286561695' title=''/><author><name>Tim Stewart</name><uri>http://www.blogger.com/profile/09462164199588340287</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1606746231'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-4827318819881847328</id><published>2007-04-26T23:22:00.000-07:00</published><updated>2007-04-26T23:22:00.000-07:00</updated><title type='text'>I &lt;b&gt;STILL&lt;/b&gt; can't think of one real-world reaso...</title><content type='html'>I &lt;B&gt;STILL&lt;/B&gt; can't think of one real-world reason why I'd want to use one.  I just don't get it (yet).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/4827318819881847328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/4827318819881847328'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1177654920000#c4827318819881847328' title=''/><author><name>kc5tja</name><uri>http://www.blogger.com/profile/11523132404727383627</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-143409082'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-2811130547934110255</id><published>2007-04-09T06:41:00.000-07:00</published><updated>2007-04-09T06:41:00.000-07:00</updated><title type='text'>Thanks.  I found this quite useful.</title><content type='html'>Thanks.  I found this quite useful.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/2811130547934110255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/2811130547934110255'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1176126060000#c2811130547934110255' title=''/><author><name>jto</name><uri>http://www.blogger.com/profile/03968844388108605008</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1145445066'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-7982804929279254106</id><published>2007-04-06T16:09:00.000-07:00</published><updated>2007-04-06T16:09:00.000-07:00</updated><title type='text'>Thanks.  Great post.</title><content type='html'>Thanks.  Great post.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/7982804929279254106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/7982804929279254106'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1175900940000#c7982804929279254106' title=''/><author><name>jto</name><uri>http://www.blogger.com/profile/03968844388108605008</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1145445066'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-115813776785737494</id><published>2006-09-13T01:56:00.000-07:00</published><updated>2006-09-13T01:56:00.000-07:00</updated><title type='text'>Thanks, like you I had read about monad transforme...</title><content type='html'>Thanks, like you I had read about monad transformers and thought "but why on earth would I want to use one?".</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/115813776785737494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/115813776785737494'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1158137760000#c115813776785737494' title=''/><author><name>Luke Plant</name><uri>http://www.blogger.com/profile/11697072800722021085</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2004441332'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-115569283954862943</id><published>2006-08-15T18:47:00.000-07:00</published><updated>2006-08-15T18:47:00.000-07:00</updated><title type='text'>Pete,&lt;br&gt;&lt;br&gt;I was going to post this very example...</title><content type='html'>Pete,&lt;BR/&gt;&lt;BR/&gt;I was going to post this very example on the  Haskell Wiki but I had trouble figuring out how to do this. I'm happy for you to do it. If you want, add a link back to here.&lt;BR/&gt;&lt;BR/&gt;If I remember I'll write an example that doesn't use 'lift' and post it here. Otherwise search for "Looking for basic state transformer example" on USENET where I  first posted an example. (The title of the USENET post is wrong, I meant to say "monad" but said "state" by accident.)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/115569283954862943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/115569283954862943'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1155692820000#c115569283954862943' title=''/><author><name>sigfpe</name><uri>http://www.blogger.com/profile/08096190433222340957</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-961546855'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-115568978276629149</id><published>2006-08-15T17:56:00.000-07:00</published><updated>2006-08-15T17:56:00.000-07:00</updated><title type='text'>Great post! I've been struggling with the concept ...</title><content type='html'>Great post! I've been struggling with the concept of monad transformers.  This post was very concise and to the point without obfuscating the reader with unnecessary details.  Would it be possible to take the content of your post to one of the more public Haskell wikis (of course with proper attribution)?  I wish I had discovered this much sooner!&lt;BR/&gt;&lt;BR/&gt;One followup question related to the "update" at the end of the post.  It's not clear to me when you say one doesn't always have to use lift.  Could you give a concrete example?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/115568978276629149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/114678350869465376/comments/default/115568978276629149'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html?showComment=1155689760000#c115568978276629149' title=''/><author><name>Pete Kazmier</name><uri>http://www.blogger.com/profile/11555083805874082644</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2006/05/grok-haskell-monad-transformers.html' ref='tag:blogger.com,1999:blog-11295132.post-114678350869465376' source='http://www.blogger.com/feeds/11295132/posts/default/114678350869465376' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1813259908'/></entry></feed>
