Arrow
import Control.Arrow |
Introduction
Arrows: A General Interface to Computation written by Ross Peterson.
HaWiki's UnderstandingArrows.
Monad.Reader's ArrowsIntroduction article.
See also Research papers/Monads and arrows.
Examples
Parser
The reasons why the arrow concept can solve important questions when designing a parser library are explained in Generalising Monads to Arrows written by John Hughes.
A good example of the mentioned arrow parsers can be seen in A New Notation for Arrows written by Ross Peterson: figure 2, 4, 6 (page 3, 5, 6).
An implementation: PArrows written by Einar Karttunen.
Stream processor
The Lazy K programming language is an interesing esoteric language (from the family purely functional languages), whose I/O concept is approached by streams.
Functional I/O, graphical user interfaces
On the Expressiveness of Purely Functional I/O Systems written by Paul Hudak and Raman S. Sundaresh.
Fudgets written by Thomas Hallgren and Magnus Carlsson.
Dataflow languages
Arrows and Computation written by Ross Paterson mentions how to mimick dataflow programming in (lazy) functional languages. See more on Lucid's own HaskellWiki page: Lucid.