29 citations found. Retrieving documents...
John Hughes. Generalizing monads to arrows. Science of Computer Programming, 37:67--111, May 2000.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Value Recursion in Monadic Computations - Erkok (2002)   (2 citations)  (Correct)

....the same axiomatization, although presented in slightly di#erent contexts. The general idea is to move to premonoidal categories, e#ectively dropping the monoidal requirement. 6.4. 1 Arrows and loop Hughes introduced arrows as a generalization of monads, making the input output flow more explicit [36]. An arrow is a binary type constructor equipped with: arr : # # : # first : # Intuitively, # # represents a computation that receives an input of type #, performs a computation with possible side e#ects, and delivers a result of type #, corresponding to what an ....

....let val = readLVar v return val let val = 0, 6 . readLVar v ] return (v1 , v2 , v3 ) t4 = do s let sVal = readLVar s cVal = readLVar c writeLVar s test writeLVar c l return (cVal : sVal) Main runLogic t1 : Int Main runLogic t2 Program error: unbound LVar [0,6,12,18,24,30,36,42] Main runLogic t3 Main runLogic t4 (42,42,42) ltest In t1, we never write to v, hence its value is left undefined. All calls to writeLVar except the last will be ignored, as demonstrated by t3. Finally, t4 shows that we can use variables with di#erent types in the same computation. ....

[Article contains additional citation context not shown here]

Hughes, J. Generalising monads to arrows. Science of Computer Programming 37, 1-3 (May 2000), 67--111. (79, 135)


An Embedded Domain-Specific Language for Type-Safe Server-Side.. - Thiemann (2003)   (Correct)

....for accessing the input to a CGI script and for creating its output. While it supports a tree based representation of documents, it does not encapsulate its manipulation. In addition, it still preserves the CGI style script centric programming style, it does have a notion of session. Hughes [18] has devised the powerful concept of arrows, a generalization of monads. His motivating application is the design of a CGI library that implements sessions. Indeed, the functionality of his library was the major source of inspiration for our work. Our work indicates that monads are sucient to ....

J. Hughes. Generalising monads to arrows. Science of Computer Programming, 37:67-111, May 2000.


Modeling Web Interactions - Graunke, Findler, Krishnamurthi.. (2003)   (7 citations)  (Correct)

....pair of communicating threads [3] For example, clicking on the back button takes the consumer back to the very beginning of the dialog. While such a runtime system prevents damage, it is also overly draconian, especially when compared to other approaches to dealing with Web dialogs. John Hughes [14], Christian Queinnec [18] and Paul Graham [11] independently had the deep insight that a browser s navigation actions correspond to the use of firstclass continuations in a program. In particular, they show that an interaction with the consumer corresponds to the manipulation of a continuation. ....

Hughes, J. Generalising monads to arrows. Science of Computer Programming, 37(1--3):67-- 111, May 2000.


Advanced Control Flows for Flexible Graphical User.. - Graunke, Krishnamurthi (2002)   (Correct)

....program transformation in conjunction with exceptions. Programmers could use their techniques to implement GUIs supporting parallel exploration, but they do not suggest doing so, nor does it extend to bookmarking. Our work on GUIs developed out of studying Web programming. In particular, Hughes [20] and Queinnec [25] inspired our earlier work [17, 18] on interactive Web applications. These investigations exposed the additional flexibility provided by Web browsers and automated the construction of robust Web applications with matching flexibility. The bookmarking portion of our work relies ....

Hughes, J. Generalising monads to arrows. Science of Computer Programming, 37(1--3):67--111, May 2000.


Automatically Restructuring Programs for the Web - Graunke, Krishnamurthi, R.. (2001)   (10 citations)  (Correct)

....that is stored in cookies. We use the CPS conversion of Danvy and Filinski to avoid introducing administrative beta redexes [10, 31] 6 Related Work Programmers building imperative style programs in purely functional languages use a technique based on the mathematical theory of monads. Hughes [20], in developing his theory of arrows, a generalization of monads, describes how to implement interactive CGI programs using arrows. His key insight is to provide a mechanism that at each interaction point turns the current continuation into a datum for the Web page. This requires an operation on ....

J. Hughes. Generalising monads to arrows. Science of Computer Programming, 37(1--3):67--111, May 2000.


WASH/CGI: Server-side Web Scripting with Sessions and Typed.. - Thiemann (2002)   (13 citations)  (Correct)

....script and for creating its output. It is nicely engineered and its functionality is at about the level of our own RawCGI library. Meijer s library o ers additional features like cookies and its own HTML representation, which we felt should be separated from the functionality of RawCGI. Hughes [5] has devised the powerful concept of arrows, a generalization of monads. His motivating application is the design of a CGI library that implements sessions. Indeed, the functionality of his library was the major source 13 of inspiration for our work. Our work indicates that monads are sucient to ....

Hughes, J.: Generalising monads to arrows. Science of Computer Programming 37 (2000) 67-111


Parsing Permutation Phrases - Baars, Loh, Swierstra (2001)   (4 citations)  (Correct)

....libraries around. For this reason we just briefly present the interface we will assume in subsequent sections of this paper, but do not go into the details of the implementation. However, we want to stress that our extension is not tied to any specific library. We make use of a simple arrow style [3,9] interface that is parametrised by the result type of the parsers and assumes a list of characters as input. It can easily be implemented by straightforward list of successes parsers [2,10] but we also have a version based on the fast, error correcting parser combinators of Swierstra [7,8] A ....

Hughes, J., Generalising monads to arrows, Science of Computer Programming 37 (2000), pp. 67--111.


Inverting back the inversion of control or, Continuations versus .. - Queinnec (2001)   (Correct)

....to see whether they accomplish their assignment. For the running example, the continuation should contain the program of the web application as well as the global variables it requires and this should only amount to a few Kbytes or a few bytes if the web application is considered constant (see [Hug00]) 8 Related work The first time I heard of continuations in the context of browsers was from David De Roure circa 1995: he qualified the Back button as the invocation of some continuation. The motivation for that study was the design of an educational CDROM (around the C programming ....

....[Tou99] addresses the problem of the non repeatability of transactions in presence of the Back and Clone buttons. Provided you master continuations, we believe our solution to be more robust, more systematic and more customizable. Monads are strongly related to continuations. Recently [Hug00], monads were generalized into arrows. One application, envisioned by John Hughes, is the encoding of the continuation of a web application written with arrows, as an URL (and some hidden fields) sent to the client. This solves the problem of multiple submissions from the same form since ....

John Hughes. Generalising monads to arrows. to be published in "Science of Computer Programming", 2000?


Real-Time FRP - Wan, Taha, Hudak (2001)   (5 citations)  (Correct)

....Although we have discussed how a base language can be invoked from within FRP, we have not proposed a method for combining or integrating the kind of machines that we have presented here. Ongoing work at Yale by Antony Courtney, Henrik Nilsson and John Peterson suggests that Hughes arrows [17] provide a natural mechanism for modeling signals that are explicitly parameterized by an input type 3 . We expect that this approach can be used as a bases for a language for combining RT FRP machines. We are particularly interested in 2 Antony Courtney, personal communication, December 2000. ....

John Hughes. Generalising monads to arrows. Science of Computer Programming, 37:67-111, May 2000.


WASH/CGI: Server-side Web Scripting with Sessions, Compositional .. - Thiemann (2002)   (13 citations)  (Correct)

....and for creating its output. It is nicely engineered and its functionality is at about the level of our own RawCGI library. However, Meijer s library o ers additional features like cookies and its own HTML representation, which we felt should be separated from the functionality of RawCGI. Hughes [11] has devised the powerful concept of arrows, a generalization of monads. His motivating application is the design of a CGI library that implements sessions. Indeed, the functionality of his library was the major source of inspiration for our work. Our work indicates that monads are sucient to ....

John Hughes. Generalising monads to arrows. Science of Computer Programming, 37:67-111, May 2000.


A typed representation for HTML and XML documents in Haskell - Thiemann (2001)   (18 citations)  (Correct)

....there are fewer type classes to learn and there is no parameterization over constructors. In addition, we can type check the way in which HTML elements (widgets) are put together. There are libraries for CGI programming (a standard interface for generating dynamic documents) by Hanus [8] Hughes [11], and Meijer [18] Meijer s work provides a thin layer of abstraction on top of the raw access to CGI parameters and convenience functions for generating di erent types of output. On top of this basic functionality, Hughes has a more sophisticated method for dealing with interactions, based on a ....

John Hughes. Generalising monads to arrows. Science of Computer Programming, 37:67-111, May 2000.


Zip Fusion with Hyperfunctions - Launchbury, Krstic, Sauerwein (2000)   (1 citation)  (Correct)

....even though we have moved to use other models as well, we have found the original hyperfunctions fascinating in their own right. They have been devilishly tricky to reason about directly, but now we know that they form a category, have a weak product and seem to t nicely into Hughes arrow class [3]. Again, whether they will turn out to be useful in other applications remains to be seen. As to the main purpose of the paper: we have at last demonstrated that many occurrences of zip can be eliminated using the fold build technique, leading to the fusion of multiple list generation routines. ....

J. Hughes. Generalising monads to arrows. Science of Computer Programming. to appear.


Modeling HTML in Haskell - Thiemann   (9 citations)  (Correct)

....is simpler because there are fewer type classes to learn and there is no parameterization over constructors. In addition, we can type check the way in which HTML elements (widgets) are put together. There are libraries for CGI (a standard for generating dynamic documents) programming by Hughes [8] and Meijer [18] both are monad based (or a generalization thereof) and concentrate on modeling the interaction between client and server and on encoding issues. They provide only little support for checking the validity of generated HTML. We believe that the present work is complementary to ....

John Hughes. Generalising monads to arrows. Science of Computer Programming, 1999. To appear.


A Notation for Arrow-based Libraries - Paterson (2001)   (Correct)

....the monad. In e ect one has the convenience of writing in an impure language. Moreover one can choose from an in nite range of impure languages. To handle some important libraries that could not be recast in the monadic style, Hughes proposed a more general notion of computation, called arrows [6]. Unknown to Hughes, workers in denotational semantics had proposed similar frameworks [2,16,17] though the implications for programming are not apparent from their papers. The arrow formulation takes procedures as the fundamental units, and thus includes monads as a special case. But it is also ....

.... de ned by f g = x f x = g The monad equations are then exactly the conditions that make associative with identity return. That is, generalized functions form a category over the same objects as the original functions, namely the well known Kleisli category [13] Hughes [6] suggested that we take these generalized functions, or arrows, as the primary notion, without assuming that they will always factor through the function type. Thus we are able to describe computations with a component that is static, i.e. independent of the input value, or computations that ....

[Article contains additional citation context not shown here]

John Hughes. Generalising monads to arrows. Science of Computer Programming, ??:??{??, 2000.


Hawk in Arrow Form (DRAFT) - Paterson (1999)   (Correct)

....in Arrow Form (DRAFT) Ross Paterson City University, London, UK e mail: ross soi.city.ac. uk August 4, 1999 The aim of this note is to show how Hawk [3] may be recast in terms of Hughes s arrows [2]. The arrow formulation permits the plugging in of various kinds of elaboration (as in Lava [1] but in a more general way than monadic formulations. For example, probes can be added to simulations in this way, with minimal modi cations to models. In order to be practical for coding models, the ....

....but in a more general way than monadic formulations. For example, probes can be added to simulations in this way, with minimal modi cations to models. In order to be practical for coding models, the scheme requires a new, and as yet unimplemented, notation for arrow expressions. 1 Arrows Hughes [2] de nes an arrow type to be a binary type constructor in the class class Arrow a where infixl 3 arr : b c) a b c ( a b c a c d a b d first : a b c a (b,d) c,d) satisfying a number of equations. He also de nes the following auxiliary combinators: second : Arrow a = ....

[Article contains additional citation context not shown here]

John Hughes. Generalising monads to arrows. Science of Computer Programming, 1999. to appear.


Restricted Data Types in Haskell - Hughes (1999)   (4 citations)  Self-citation (Hughes)   (Correct)

....where unit x = StringM (sh dict x) StringM s bind f = f (rd dict s) This monad is related to a library for CGI programming which I am developing, which saves computations in hidden fields of HTML forms. In fact, the technique is applied to yet another constructor class, the class of arrows [Hug99]) 4 Improving the Simulation The technique we have discussed certainly lets us use different properties of collection elements in different instances of the collection class, but not really very conveniently. In figure 2, for example, we know that the element type supports an equality ....

J. Hughes. Generalising Monads to Arrows. Science of Computer Programming, to appear, 1999.


Skeletons and the Anatomy of Monads - Chuan-Kai Lin Department   (Correct)

No context found.

John Hughes. Generalizing monads to arrows. Science of Computer Programming, 37:67--111, May 2000.


There and Back Again: Arrows for Invertible Programming - Alimarine, Smetsers, van .. (2005)   (Correct)

No context found.

J. Hughes. Generalising monads to arrows. Science of Computer Programming, 37(1--3):67--111, 2000.


GEC: a toolkit for Generic Rapid Prototyping of.. - Achten, van..   (Correct)

No context found.

J. Hughes. Generalising Monads to Arrows. Science of Computer Programming, 37:67--111, May 2000.


A Monadic Approach for Avoiding Code Duplication when .. - Swadi, Taha.. (2006)   (Correct)

No context found.

R. Hughes. Generalising monads to arrows. Science of Computer Programming, 37:67--111, May 2000.


Arrows for - Generic Graphical Editor   (Correct)

No context found.

J. Hughes. Generalising Monads to Arrows. Science of Computer Programming, 37:67--111, May 2000.


GEC: A Toolkit for Generic Rapid Prototyping of.. - Achten, van.. (2005)   (Correct)

No context found.

J. Hughes. Generalising Monads to Arrows. Science of Computer Programming, 37:67--111, May 2000.


How To Obtain Powerful Parsers That Are Elegant and Practical - Pepper (2004)   (Correct)

No context found.

J. Hughes. Generalizing monads to arows. Science of Computer Programming, (37):67-111, 2000.


FrTime: Functional Reactive Programming in PLT Scheme - Cooper, Krishnamurthi (2004)   (Correct)

No context found.

J. Hughes. Generalizing monads to arrows. Science of Computer Programming, 37(1-3), May 2000.


Arrows, Robots, and Functional Reactive Programming - Hudak, Courtney, Nilsson.. (2002)   (1 citation)  (Correct)

No context found.

John Hughes. Generalising monads to arrows. Science of Computer Programming, 37:67--111, May 2000.


Arrows for Generic Graphical Editor Components - Achten Van Eekelen (2004)   (Correct)

No context found.

J. Hughes. Generalising Monads to Arrows. Science of Computer Programming, 37:67--111, May 2000.


Traced Premonoidal Categories - Benton, Hyland (1999)   (3 citations)  (Correct)

No context found.

J. Hughes. Generalising monads to arrows. Science of Computer Programming, 37:67--112, 2000.


Arrows for Generic Graphical Editor Components - Peter Achten Marko (2004)   (Correct)

No context found.

J. Hughes. Generalising Monads to Arrows. Science of Computer Programming, 37:67--111, May 2000.


Web Interactions - Graunke (2003)   (Correct)

No context found.

Hughes, J. Generalising monads to arrows. Science of Computer Programming, 37(1-3):67{ 111, May 2000.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC