TV is 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
composition. This combination makes for software that is ready
to use and ready to reuse. TV can be thought of as a simple
functional formulation of the Model-View-Controller pattern. (My
thanks to an anonymous ICFP referee for pointing out this
connection.) The value part of a TV is the model, and the
"interface" part, or "output" as it is called below, is the
viewer. Outputs are built up compositionally from other outputs
and from inputs (the controllers), as described below. Besides
this wiki page, here are more ways to learn about TV: - Visit
the Hackage page for library documentation and to download &
install. - Or install with cabal install pr