## (2008)

### BibTeX

@MISC{Oblivious08,

author = {Idioms Are Oblivious and Sam Lindley and Philip Wadler and Jeremy Yallop},

title = {},

year = {2008}

}

### OpenURL

### Abstract

monads are promiscuous

### Citations

921 |
Categories for the working mathematician
- Lane
- 1998
(Show Context)
Citation Context ... term isomorphic to the original term, Γ ⊢T M : A implies Γ ⊢T �〈[M]〉�[Γ := g(Γ)] = gA(M) : �〈[A]〉� for all Γ, M, A in T . (This definition amounts to saying that we have an equivalence of categories =-=[3]-=-, where �−� is left adjoint to 〈[−]〉 with unit fA and counit g −1 A .) The special case of an equational equivalence where both isomorphisms are the identity is an equational correspondence. Definitio... |

733 | Notions of Computation and Monads
- Moggi
- 1991
(Show Context)
Citation Context ...r fst >>> f (❀9) first (first f) >>> arr assoc = arr assoc >>> first f Fig. 4. Arrows, C careful maintenance of this distinction in the typing rules. Figure 6 (page 9) defines the theory of monads, M =-=[7]-=-. Like idioms, monads extend λ→×1 with a unary type constructor M for computations of type M A which return a value of type A. The constant return is analogous to the idiomatic pure, while >>= constru... |

440 | Computational lambda-calculus and monads
- Moggi
- 1989
(Show Context)
Citation Context ...y. The arrow calculus is the analogue for arrows of Moggi’s computational metalanguage [7]. For the future, we plan to investigate analogues for arrows and idioms of the computational lambda calculus =-=[6]-=-. Acknowledgement We thank Robert Atkey for illuminating discussions, Ezra Cooper, Ben Moseley and Brent Yorgey for comments on a draft of this paper, and Conor McBride and anonymous reviewers for hel... |

161 | Reasoning about programs in continuation-passing style
- Sabry, Felleisen
- 1993
(Show Context)
Citation Context ...ng, idioms are less powerful than arrows. The remainder of this paper is organised as follows. Section 2 introduces the notion of equational equivalence, a generalisation of equational correspondence =-=[11]-=-. Section 3 defines standard equational theories corresponding to idioms, arrows and monads, and a more convenient equational theory for arrows which highlights how arrows meticulously maintain the di... |

69 | Applicative programming with effects
- McBride, Paterson
(Show Context)
Citation Context ...ach monad gives rise to an arrow, and gives an extended arrow interface, ArrowApp, that is equivalent to the monad interface. In their later work introducing idioms (also called applicative functors) =-=[5]-=-, McBride and Paterson show how to obtain an idiom from either a monad or an arrow, and how to combine an idiom and an arrow to yield another arrow. However, the precise relationship between the three... |

48 | A new notation for arrows
- Paterson
- 2001
(Show Context)
Citation Context ... B (I1) u = pure id ⊗ u (I2) pure f ⊗ pure p = pure (f p) (I3) u ⊗ (v ⊗ w) = pure (·) ⊗ u ⊗ v ⊗ w (I4) u ⊗ pure x = pure (λf. f x) ⊗ u Fig. 3. Idioms, I Figure 4 (page 8) defines the theory of arrows =-=[1,8]-=-, C, which (following [4]) we refer to as classic arrows. Classic arrows extend λ→×1 with a binary type constructor ❀ for computations with input and output and three constants for creating and compos... |

32 |
Generalising Monads to Arrows. Science of Computer Programming, 37:67–111, May 2000. R. van der Meyden. Finite State Implementations of Knowledge-Based Programs
- Hughes
(Show Context)
Citation Context ...ecifying that the input must be an idiom rather than an arrow? Can a library that exposes an idiom instance be made more flexible by exposing an arrow instance instead? In his original work on arrows =-=[1]-=-, Hughes shows how each monad gives rise to an arrow, and gives an extended arrow interface, ArrowApp, that is equivalent to the monad interface. In their later work introducing idioms (also called ap... |

12 | Arrows and computation
- Paterson
(Show Context)
Citation Context ...to users, but demand more of implementers. There are consequently many interesting instances of the idiom and arrow interfaces which do not satisfy the more stringent requirements for monad instances =-=[1,2,5,8,9]-=-. 12Lindley, Wadler and Yallop 5 Relating idioms and arrows In order to compare idioms and arrows we formalise static arrow computations. First, we describe a variant of classic arrows that supports ... |

8 | Programming with arrows - Hughes - 2004 |

7 | The RPC calculus
- Cooper, Wadler
- 2009
(Show Context)
Citation Context ...) pure f ⊗ pure p = pure (f p) (I3) u ⊗ (v ⊗ w) = pure (·) ⊗ u ⊗ v ⊗ w (I4) u ⊗ pure x = pure (λf. f x) ⊗ u Fig. 3. Idioms, I Figure 4 (page 8) defines the theory of arrows [1,8], C, which (following =-=[4]-=-) we refer to as classic arrows. Classic arrows extend λ→×1 with a binary type constructor ❀ for computations with input and output and three constants for creating and composing computations. The fir... |