Generalising monads to arrows
By John Hughes. Science of Computer Programming, 2000
534 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/69726843cd5f6b4990154a51ee6897a3af3b703e
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Tarmo Uustalu
- Thorsten Altenkirch
- James Chapman
- S. Staton
- Paul Hudak
- Philip Wadler
- Simon L. Peyton Jones
- Marcello Herreshoff
In Information Systems
- Tarmo Uustalu
- Thorsten Altenkirch
- James Chapman
- S. Staton
- Paul Hudak
- Philip Wadler
- Simon L. Peyton Jones
- G. Mainland
In Software
- Tarmo Uustalu
- Thorsten Altenkirch
- James Chapman
- S. Staton
- Simon L. Peyton Jones
- Paul Hudak
- Philip Wadler
- G. Mainland
Citations in the corpus
- Commutativity (2015, background): “In this context, a useful generalisation of strong monads are the arrows of [22], which find categorical expression as the Freyd -categories of [38].”
- A history of Haskell: being lazy with class (2007, methodology): “Hughes, on the other hand, was very concerned thatseq should be applicable to values ofany type—even type variables—so that space leaks could be fixed even in polymorphic code.”
- Monads need not be endofunctors (2010, methodology): “We now turn to a whole class of examples, Hughes’s arrows [9].”
- Deep Learning with Dynamic Computation Graphs (2017, methodology): “The design of the library was inspired by functional programming techniques such as parser combi-nators (Hutton & Meijer, 1996) and arrows (Hughes, 2000).”
- Flask (2008, background): “The arrow abstraction on which AFRP is based (Hughes 2000, 2004) does not make a distinction between meta and object level programs, which prevents us from using it directly in Flask; the Arrow class method pure , of which we have seen a special case, has type Arrow a ⇒ ( b → c ) → a b c , which…”
- Commutative Semantics for Probabilistic Programming (2017, background): “…Power, Hughes and others have eschewed monads and given categorical semantics for first order languages in terms of Freyd categories [25] or Arrows [16] (see also [2,17,41]), and the idea of structuring the finite kernels as an Arrow already appears in the work of B¨orgstrom et al. [3] (see also…”
- A survey on reactive programming (2013, methodology): “2003] avoids these problems by limiting expressiveness through the use of arrows [Hughes 2000] and restricting the behaviours to be non-first class.”
- A Survey and a Layered Taxonomy of Software-Defined Networking (2014, background): “• McNettle [53] is an SDN controller programmed with Nettle [61], a Domain-Specific Language (DSL) embedded in Haskell, that allows programming OpenFlow networks in a declarative style.”
- Declarative modelling for Bayesian inference by shallow embedding (2014, background): “As discussed in section 1, this was resolved by making the notion of computation be an arrow [3] representing a conditional probability distribution.”