<a href="http://haskell.org/haskellwiki/TV"><b>TV</b></a> is a library for composing <i>tangible values</i> (&quot;TVs&quot;), i.e., values that carry along external interfaces.  In particular, TVs can be composed to create new TVs, 
<i>and</i>
they can be directly executed with various kinds of interfaces. Values
and interfaces are <i>combined</i> for direct use, and <i>separable</i> for composition.<br><br><a style="font-weight: bold;" href="http://haskell.org/haskellwiki/GuiTV">GuiTV</a> adds graphical user interfaces to the <a href="http://haskell.org/haskellwiki/TV" title="TV">
TV</a> (tangible value) framework, using <a href="http://haskell.org/haskellwiki/Phooey" title="Phooey">Phooey</a>.  The functionality was part of <a href="http://haskell.org/haskellwiki/TV" title="TV">TV</a>
up to version 0.1.1. I moved it out to a new package to eliminate the
dependency of core TV on Phooey and hence on wxHaskell, as the latter
can be difficult to install.<br><br>See this <a href="http://conal-elliott.blogspot.com/2007/02/separating-io-from-logic-example.html">blog post</a> about for an example of using TV to neatly separate logic from IO.<br><br>
&nbsp;&nbsp; - Conal<br><br>