<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Conal Elliott &#187; Phooey</title>
	<atom:link href="http://conal.net/blog/tag/phooey/feed" rel="self" type="application/rss+xml" />
	<link>http://conal.net/blog</link>
	<description>Inspirations &#38; experiments, mainly about denotative/functional programming in Haskell</description>
	<lastBuildDate>Thu, 25 Jul 2019 18:15:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.17</generator>
	<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2F&amp;language=en_US&amp;category=text&amp;title=Conal+Elliott&amp;description=Inspirations+%26amp%3B+experiments%2C+mainly+about+denotative%2Ffunctional+programming+in+Haskell&amp;tags=blog" type="text/html" />
	<item>
		<title>&#8220;Tangible Functional Programming&#8221; &#8212; icfp version</title>
		<link>http://conal.net/blog/posts/tangible-functional-programming-icfp-version</link>
		<comments>http://conal.net/blog/posts/tangible-functional-programming-icfp-version#comments</comments>
		<pubDate>Tue, 10 Jul 2007 05:19:00 +0000</pubDate>
		<dc:creator><![CDATA[Conal]]></dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[arrow]]></category>
		<category><![CDATA[DeepArrow]]></category>
		<category><![CDATA[Eros]]></category>
		<category><![CDATA[gestural composition]]></category>
		<category><![CDATA[icfp]]></category>
		<category><![CDATA[interactive programming]]></category>
		<category><![CDATA[interactive visualization]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[Phooey]]></category>
		<category><![CDATA[TV]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/tangible-functional-programming-icfp-version/</guid>
		<description><![CDATA[I just submitted the camera-ready version of &#8220;Tangible Functional Programming&#8221;, for ICFP &#8217;07. I&#8217;m happy with this version. It&#8217;s improved drastically since my first submission to ICFP &#8217;06, thanks to many helpful comments. I&#8217;ve also been recreating the implementation on top of DeepArrow, Phooey, and TV, in preparation for a software release. It&#8217;s getting simpler, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I just submitted the camera-ready version of <a href="http://conal.net/papers/Eros">&#8220;Tangible Functional Programming&#8221;</a>, for <a href="http://www.informatik.uni-bonn.de/%7Eralf/icfp07.html">ICFP &#8217;07</a>.  I&#8217;m happy with this version. It&#8217;s improved drastically since my first submission to ICFP &#8217;06, thanks to many helpful comments. I&#8217;ve also been recreating the implementation on top of <a href="http://www.haskell.org/haskellwiki/DeepArrow">DeepArrow</a>, <a href="http://www.haskell.org/haskellwiki/Phooey">Phooey</a>, and <a href="http://www.haskell.org/haskellwiki/TV">TV</a>, in preparation for a software release. It&#8217;s getting simpler, but it&#8217;s not as simple as I want.</p>
<p><a href="http://conal.net/blog/?flattrss_redirect&amp;id=37&amp;md5=9870e5dd6003b96b97a04f322c179426"><img src="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png" srcset="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@2x.png 2xhttp://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@3x.png 3x" alt="Flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/tangible-functional-programming-icfp-version/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2Fposts%2Ftangible-functional-programming-icfp-version&amp;language=en_GB&amp;category=text&amp;title=%26%238220%3BTangible+Functional+Programming%26%238221%3B+%26%238212%3B+icfp+version&amp;description=I+just+submitted+the+camera-ready+version+of+%26%238220%3BTangible+Functional+Programming%26%238221%3B%2C+for+ICFP+%26%238217%3B07.+I%26%238217%3Bm+happy+with+this+version.+It%26%238217%3Bs+improved+drastically+since+my+first+submission+to+ICFP+%26%238217%3B06%2C+thanks+to...&amp;tags=arrow%2CDeepArrow%2CEros%2Cgestural+composition%2Cicfp%2Cinteractive+programming%2Cinteractive+visualization%2Clibrary%2CPhooey%2CTV%2Cwriting%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Paper draft: &#8220;Applicative Data-Driven Computation&#8221;</title>
		<link>http://conal.net/blog/posts/paper-draft-applicative-data-driven-computation</link>
		<comments>http://conal.net/blog/posts/paper-draft-applicative-data-driven-computation#comments</comments>
		<pubDate>Sat, 02 Jun 2007 18:58:00 +0000</pubDate>
		<dc:creator><![CDATA[Conal]]></dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[applicative functor]]></category>
		<category><![CDATA[data-driven computation]]></category>
		<category><![CDATA[GUI programming]]></category>
		<category><![CDATA[Phooey]]></category>
		<category><![CDATA[type composition]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/paper-draft-applicative-data-driven-computation/</guid>
		<description><![CDATA[I would love to get comments on a short (4.5 page) paper draft called &#8220;Applicative Data-Driven Computation&#8221; (Haskell wiki page), which describes a very simple approach to data-driven (push-based) computation and its application to GUI programming. There&#8217;s a &#8220;Talk page&#8221; link for discussion. I&#8217;m also very interested in suggestions and (better yet) collaboration on other [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I would love to get comments on a short (4.5 page) paper draft called &#8220;<a href="http://www.haskell.org/haskellwiki/Applicative_Data-Driven_Programming">Applicative Data-Driven Computation</a>&#8221; (Haskell wiki page), which  describes a very simple approach to data-driven (push-based) computation and its application to GUI programming.   There&#8217;s a &#8220;Talk page&#8221; link for discussion.</p>

<p>I&#8217;m also very interested in suggestions and (better yet) collaboration on other applications of data-driven computation beyond GUIs, say push-based internet apps.</p>
<p><a href="http://conal.net/blog/?flattrss_redirect&amp;id=34&amp;md5=5fb246319b5209d2a8310e36d44bc050"><img src="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png" srcset="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@2x.png 2xhttp://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@3x.png 3x" alt="Flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/paper-draft-applicative-data-driven-computation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2Fposts%2Fpaper-draft-applicative-data-driven-computation&amp;language=en_GB&amp;category=text&amp;title=Paper+draft%3A+%26%238220%3BApplicative+Data-Driven+Computation%26%238221%3B&amp;description=I+would+love+to+get+comments+on+a+short+%284.5+page%29+paper+draft+called+%26%238220%3BApplicative+Data-Driven+Computation%26%238221%3B+%28Haskell+wiki+page%29%2C+which+describes+a+very+simple+approach+to+data-driven+%28push-based%29+computation...&amp;tags=applicative+functor%2Cdata-driven+computation%2CGUI+programming%2CPhooey%2Ctype+composition%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Software releases: TypeCompose, Phooey, GuiTV</title>
		<link>http://conal.net/blog/posts/software-releases-typecompose-phooey-guitv</link>
		<comments>http://conal.net/blog/posts/software-releases-typecompose-phooey-guitv#comments</comments>
		<pubDate>Fri, 30 Mar 2007 20:17:00 +0000</pubDate>
		<dc:creator><![CDATA[Conal]]></dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[GuiTV]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[Phooey]]></category>
		<category><![CDATA[TV]]></category>
		<category><![CDATA[type composition]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/software-releases-typecompose-phooey-guitv/</guid>
		<description><![CDATA[Three related software releases. I am very interested in comments and contributions. TypeCompose provides some classes &#38; instances for forms of type composition. It also includes a very simple implementation of data-driven computation. I factored it out of a new implementation of Phooey. Phooey is a library for functional user interfaces. Highlights in this 0.3 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Three related software releases.  I am very interested in comments and contributions.</p>

<p><a href="http://haskell.org/haskellwiki/TypeCompose" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">TypeCompose</a> provides some classes &amp; instances for forms of type composition. It also includes a very simple implementation of data-driven computation.  I factored it out of a new implementation of <a href="http://haskell.org/haskellwiki/Phooey" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Phooey</a>.
<span class="sg">
</span><a href="http://haskell.org/haskellwiki/Phooey" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Phooey</a> is a library for functional user interfaces.  Highlights in this 0.3 release:</p>

<ul><li> Uses new <a href="http://haskell.org/haskellwiki/TypeCompose" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> TypeCompose</a> package, which includes a simple implementation of data-driven computation.</li><li> New Applicative functor interface.</li><li> Eliminated the catch-all Phooey.hs module.  Now import any one of Graphics.UI.Phooey.{Monad ,Applicative,Arrow}.</li><li> Phooey.Monad has two different styles of output widgets, made by owidget and owidget&#8217;. The latter is used to implement Phooey.Applicative.</li><li> Self- and mutually-recursive widgets now work again in Phooey.Monad. They wedge in Phooey.Arrow and Phooey.Applicative.</li></ul>

<p>Phooey is also used in <a href="http://haskell.org/haskellwiki/GuiTV" title="GuiTV" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> GuiTV</a>, a library for composable interfaces and &#8220;tangible values&#8221;.  I&#8217;ve also just updated GuiTV to 0.3, to sync with Phooey 1.0.
<span class="sg">
</span></p>
<p><a href="http://conal.net/blog/?flattrss_redirect&amp;id=33&amp;md5=a7538172707138bbf7b228cdff2474dd"><img src="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png" srcset="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@2x.png 2xhttp://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@3x.png 3x" alt="Flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/software-releases-typecompose-phooey-guitv/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2Fposts%2Fsoftware-releases-typecompose-phooey-guitv&amp;language=en_GB&amp;category=text&amp;title=Software+releases%3A+TypeCompose%2C+Phooey%2C+GuiTV&amp;description=Three+related+software+releases.+I+am+very+interested+in+comments+and+contributions.+TypeCompose+provides+some+classes+%26amp%3B+instances+for+forms+of+type+composition.+It+also+includes+a+very+simple+implementation...&amp;tags=GuiTV%2Clibrary%2CPhooey%2CTV%2Ctype+composition%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Software releases</title>
		<link>http://conal.net/blog/posts/software-releases</link>
		<comments>http://conal.net/blog/posts/software-releases#comments</comments>
		<pubDate>Tue, 23 Jan 2007 06:09:00 +0000</pubDate>
		<dc:creator><![CDATA[Conal]]></dc:creator>
				<category><![CDATA[Functional programming]]></category>
		<category><![CDATA[DeepArrow]]></category>
		<category><![CDATA[Eros]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[Phooey]]></category>
		<category><![CDATA[TV]]></category>

		<guid isPermaLink="false">http://conal.net/blog/posts/software-releases/</guid>
		<description><![CDATA[Last week I released three Haskell libraries: DeepArrow 0.0, Phooey 0.1, and TV 0.0. These libraries came from Eros, which aims at creating a right-brain-friendly (concrete, non-linguistic) &#8220;programming&#8221; process. I&#8217;ve had a growing intuition over the last fifteen years that media authoring tools can be usefully looked at as environments for functional programming. I&#8217;d been [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Last week I released three Haskell libraries: <a href="http://haskell.org/haskellwiki/DeepArrow">DeepArrow</a> 0.0, <a href="http://haskell.org/haskellwiki/Phooey">Phooey</a> 0.1, and <a href="http://haskell.org/haskellwiki/TV">TV</a> 0.0.</p>

<p>These libraries came from <a href="http://conal.net/papers/Eros">Eros</a>, which aims at creating a right-brain-friendly (concrete, non-linguistic) &#8220;programming&#8221; process. I&#8217;ve had a growing intuition over the last fifteen years that media authoring tools can be usefully looked at as environments for functional programming. I&#8217;d been wondering how to map a user&#8217;s gestures into operations on a functional program. Lots of noodling led to ideas of composable interfaces and &#8220;tangible values&#8221; (term thanks to Sean Seefried) and gestural composition in Eros.</p>

<p>Eros is more complicated than I like, so I started splitting it into pieces:</p>

<ul><li> <a href="http://haskell.org/haskellwiki/Phooey">Phooey</a> is a functional GUI library that has much of Eros&#8217;s GUI implementation techniques, but much more carefully structured than in the Eros paper.
</li><li> <a href="http://haskell.org/haskellwiki/DeepArrow">DeepArrow</a> has the general notion of &#8220;deep application&#8221;
</li><li> <a href="http://haskell.org/haskellwiki/TV">TV</a> has the algebra of <i>composable interfaces</i>, or visualizations of pure values, and it has <i>tangible values</i>, which are separable combinations of interface and value.  It uses Phooey to generate GUIs very simply from interfaces</li></ul>

<p>Although these libraries came from Eros, I&#8217;d like to see other applications as well.</p>

<p>Where am I going with library development?</p>

<ul><li> Figure out how to support simple GUIs and Eros&#8217;s <em>gesturally composable</em> GUIs, without code/library replication.
</li><li> Re-implement Eros on top of simpler pieces.</li><li> Refactor <a href="http://conal.net/Pajama">Pajama</a> into reusable libraries and release.
<ul><li>Building and optimizing &#8220;expressions&#8221;
</li><li>Common sub-expression elimination
</li><li>Generation of Java code</li><li>Perhaps other back-ends besides Java</li><li>Pajama, on top of these pieces</li></ul></li></ul>

<p><span style="font-weight: bold;">Edit of March 5, 2007</span>:  TV is now split into a core <a dragover="true" href="http://haskell.org/haskellwiki/TV">TV</a> package, with no GUI functionality, and <a href="http://haskell.org/haskellwiki/GuiTV">GuiTV,</a> with Phooey-based GUI creation.  The reason for the split is that <a href="http://haskell.org/haskellwiki/Phooey">Phooey</a> depends on <a href="http://wxhaskell.sourceforge.net/">wxHaskell</a>, which can be difficult to install.</p>
<p><a href="http://conal.net/blog/?flattrss_redirect&amp;id=30&amp;md5=19448e0a9bb58b65046a865b3fdde307"><img src="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png" srcset="http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@2x.png 2xhttp://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white.png, http://conal.net/blog/wp-content/plugins/flattr/img/flattr-badge-white@3x.png 3x" alt="Flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://conal.net/blog/posts/software-releases/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=conal&amp;popout=1&amp;url=http%3A%2F%2Fconal.net%2Fblog%2Fposts%2Fsoftware-releases&amp;language=en_GB&amp;category=text&amp;title=Software+releases&amp;description=Last+week+I+released+three+Haskell+libraries%3A+DeepArrow+0.0%2C+Phooey+0.1%2C+and+TV+0.0.+These+libraries+came+from+Eros%2C+which+aims+at+creating+a+right-brain-friendly+%28concrete%2C+non-linguistic%29+%26%238220%3Bprogramming%26%238221%3B+process.+I%26%238217%3Bve...&amp;tags=DeepArrow%2CEros%2Clibrary%2CPhooey%2CTV%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>
