I'm happy to announce the birth of TV, a library for composing tangible values ("TVs"), i.e., values that carry along external interfaces. In particular, TVs can be composed to create new TVs,
and
they can be directly executed with a friendly GUI, a process that reads
and writes character streams, or many other kinds interfaces. Values
and interfaces are combined for direct use, and separable for composability.
Please see the project page at http://haskell.org/haskellwiki/TV .
TV makes use of the DeepArrow and Phooey libraries.
Cheers, - Conal