Arrow (computer science)
Appearance
In computer science, arrows provide a more general interface to computation than monads. Monads essentially provide a sequential interface to computation: one can build a computation out of a value, or sequence two computations together. Arrows provide more possibilities, including expressing (true, nondeterministic) parallel computation. Indeed, all monads are instances of arrows of a particular kind, ArrowApply. Because arrows carry more type information than just the result type, composition can be more efficient -- for example, eliminating space leaks.
Arrows have found use in functional reactive programming.