Arrows are a new abstract view of computation, defined by John Hughes [Hug00]. They serve much the
same purpose as monads -- providing a common structure for libraries -- but are more general. In
particular they allow notions of computation that may be partially static (independent of the input)
or may take multiple inputs. If your application works fine with monads, you might as well stick
with them. But if you're using a structure that's very like a monad, but isn't one, maybe it's an
At one point, Open Hub analyzed source code for this project based on code location(s) available at that time. Since then, the code locations have been removed.