# Difference between revisions of "Research papers/Monads and arrows"

From HaskellWiki

DonStewart (talk | contribs) (+Koen's poor man's concurrency monad) |
DonStewart (talk | contribs) (moggi's papers) |
||

Line 3: | Line 3: | ||

==Monads== |
==Monads== |
||

− | |||

− | ;[http://research.microsoft.com/~simonpj/Papers/marktoberdorf Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell] |
||

− | :In "Engineering theories of software construction", ed Tony Hoare, Manfred Broy, Ralf Steinbruggen, IOS Press, ISBN 1 58603 1724, 2001, pp47-96. |
||

;[http://research.microsoft.com/~simonpj/Papers/state-lasc.ps.gz State in Haskell] |
;[http://research.microsoft.com/~simonpj/Papers/state-lasc.ps.gz State in Haskell] |
||

Line 15: | Line 12: | ||

;[http://research.microsoft.com/~simonpj/Papers/imperative.ps.Z Imperative functional programming] |
;[http://research.microsoft.com/~simonpj/Papers/imperative.ps.Z Imperative functional programming] |
||

:SL Peyton Jones and PL Wadler, 20th ACM Symposium on Principles of Programming Languages (POPL'93), Charleston, Jan 1993, pp71-84. |
:SL Peyton Jones and PL Wadler, 20th ACM Symposium on Principles of Programming Languages (POPL'93), Charleston, Jan 1993, pp71-84. |
||

− | |||

⚫ | |||

⚫ | |||

;[http://www.informatik.uni-bonn.de/~ralf/publications/FLOPS98.ps.gz Prological features in a functional setting - axioms and implementations] |
;[http://www.informatik.uni-bonn.de/~ralf/publications/FLOPS98.ps.gz Prological features in a functional setting - axioms and implementations] |
||

:Ralf Hinze. In Masahiko Sato, Yoshihito Toyama, editors, Third Fuji International Symposium on Functional and Logic Programming (FLOPS'98), Kyoto University, Japan, April 1998, pp. 98-122. World Scientific, Singapore, New Jersey, London, Hong Kong. |
:Ralf Hinze. In Masahiko Sato, Yoshihito Toyama, editors, Third Fuji International Symposium on Functional and Logic Programming (FLOPS'98), Kyoto University, Japan, April 1998, pp. 98-122. World Scientific, Singapore, New Jersey, London, Hong Kong. |
||

− | |||

⚫ | |||

⚫ | |||

;[http://www.informatik.uni-bonn.de/~ralf/publications/IAI-TR-96-9.ps.gz Monadic-style backtracking] |
;[http://www.informatik.uni-bonn.de/~ralf/publications/IAI-TR-96-9.ps.gz Monadic-style backtracking] |
||

:Ralf Hinze. Technical Report IAI-TR-96-9, Institut fr Informatik III, Universitt Bonn, October 1996. |
:Ralf Hinze. Technical Report IAI-TR-96-9, Institut fr Informatik III, Universitt Bonn, October 1996. |
||

− | |||

⚫ | |||

⚫ | |||

;[http://www.cse.ogi.edu/~mpj/pubs/composing.html Composing Monads] |
;[http://www.cse.ogi.edu/~mpj/pubs/composing.html Composing Monads] |
||

Line 45: | Line 33: | ||

;[http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/marktoberdorf.ps.gz Monads for functional programming] |
;[http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/marktoberdorf.ps.gz Monads for functional programming] |
||

:Philip Wadler. In M. Broy, editor, Marktoberdorf Summer School on Program Design Calculi, Springer Verlag, NATO ASI Series F: Computer and systems sciences, Volume 118, August 1992. Also in J. Jeuring and E. Meijer, editors, Advanced Functional Programming, Springer Verlag, LNCS 925, 1995. |
:Philip Wadler. In M. Broy, editor, Marktoberdorf Summer School on Program Design Calculi, Springer Verlag, NATO ASI Series F: Computer and systems sciences, Volume 118, August 1992. Also in J. Jeuring and E. Meijer, editors, Advanced Functional Programming, Springer Verlag, LNCS 925, 1995. |
||

− | |||

⚫ | |||

⚫ | |||

;[http://homepages.inf.ed.ac.uk/wadler/papers/monadscomb/monadscomb.ps.gz Combining monads] |
;[http://homepages.inf.ed.ac.uk/wadler/papers/monadscomb/monadscomb.ps.gz Combining monads] |
||

Line 57: | Line 42: | ||

;[http://www.math.chalmers.se/~koen/pubs/entry-jfp99-monad.html A Poor Man's Concurrency Monad] |
;[http://www.math.chalmers.se/~koen/pubs/entry-jfp99-monad.html A Poor Man's Concurrency Monad] |
||

:Koen Claessen, Journal of Functional Programming. 9(3). 313--323. 1999. |
:Koen Claessen, Journal of Functional Programming. 9(3). 313--323. 1999. |
||

+ | |||

+ | ;[http://okmij.org/ftp/Computation/proving-monad-laws.txt How to prove monad laws] |
||

+ | :Oleg Kiselyov, v1.1, Sep 2, 2003, Originally posted as "Re: proving the monad laws" on the Haskell mailing list |
||

+ | |||

+ | ===Monad comprehensions=== |
||

+ | |||

⚫ | |||

⚫ | |||

+ | |||

+ | ===Monad transformers=== |
||

+ | |||

⚫ | |||

⚫ | |||

+ | |||

⚫ | |||

⚫ | |||

+ | |||

⚫ | |||

⚫ | |||

+ | |||

+ | ;[http://okmij.org/ftp/papers/LogicT.pdf Backtracking, Interleaving, and Terminating Monad Transformers] |
||

+ | :Oleg Kiselyov, Chung-chieh Shan, Daniel P. Friedman and Amr Sabry, Functional Pearl, to be presented at ICFP 2005. |
||

+ | |||

+ | ===Monad theory=== |
||

+ | |||

+ | ;[http://www.disi.unige.it/person/MoggiE/ftp/ic91.ps.gz Notions of computation and monads] |
||

+ | :Eugenio Moggi. Information and Computation, 93(1):55-92, July 1991 |
||

+ | |||

+ | ;[http://www.disi.unige.it/person/MoggiE/ftp/lc88.ps.gz Computational lambda-calculus and monads] |
||

+ | :Eugenio Moggi. Logic in Computer Science, 1989. LICS '89, Proceedings., Fourth Annual Symposium on (1989), pp. 14-23. |
||

+ | |||

+ | ;[http://citeseer.ist.psu.edu/filinski99representing.html Representing Layered Monads] |
||

+ | :Andrzej Filinski. In Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 175--188, San Antonio, Texas, USA, January 1999. ACM Press. |
||

+ | |||

+ | ;[http://www.disi.unige.it/person/MoggiE/APPSEM00/BHM-revised.ps.gz Monads and Effects] |
||

+ | :Eugenio Moggi. APPSEM'00 Summer School, LNCS 2395, 2002 |
||

+ | |||

+ | ;[http://www.disi.unige.it/person/MoggiE/ftp/jfp01.ps.gz Monadic Encapsulation of Effects: A Revised Approach (extended version)] |
||

+ | :Journal of Functional Programming, 11(6), 2001. |
||

==Arrows== |
==Arrows== |

## Revision as of 05:24, 9 April 2006

## Contents

## Monads

- State in Haskell
- SL Peyton Jones and J Launchbury, Lisp and Symbolic Computation 8(4), Dec 1995, pp293-341.

- Lazy functional state threads
- SL Peyton Jones and J Launchbury, SIGPLAN Symposium on Programming Language Design and Implementation (PLDI'94), Orlando, June 1994, pp24-35.

- Imperative functional programming
- SL Peyton Jones and PL Wadler, 20th ACM Symposium on Principles of Programming Languages (POPL'93), Charleston, Jan 1993, pp71-84.

- Prological features in a functional setting - axioms and implementations
- Ralf Hinze. In Masahiko Sato, Yoshihito Toyama, editors, Third Fuji International Symposium on Functional and Logic Programming (FLOPS'98), Kyoto University, Japan, April 1998, pp. 98-122. World Scientific, Singapore, New Jersey, London, Hong Kong.

- Monadic-style backtracking
- Ralf Hinze. Technical Report IAI-TR-96-9, Institut fr Informatik III, Universitt Bonn, October 1996.

- Composing Monads
- Mark P. Jones and Luc Duponcheel Research Report YALEU/DCS/RR-1004, Yale University, New Haven, Connecticut, USA, December 1993.

- The marriage of effects and monads
- Philip Wadler and Peter Thiemann. Submitted to ACM Transactions on Computational Logic.

- How to declare an imperative
- Philip Wadler. ACM Computing Surveys, 29(3):240--263, September 1997. A shorter version was an invited paper at ILPS 95, appearing in John Lloyd, editor, International Logic Programming Symposium, MIT Press, December 1995.

- Monads and composable continuations
- Philip Wadler. Lisp and Symbolic Computation, Special issue on continuations, 7(1):39-56, January 1994.

- Monads for functional programming
- Philip Wadler. In M. Broy, editor, Marktoberdorf Summer School on Program Design Calculi, Springer Verlag, NATO ASI Series F: Computer and systems sciences, Volume 118, August 1992. Also in J. Jeuring and E. Meijer, editors, Advanced Functional Programming, Springer Verlag, LNCS 925, 1995.

- Combining monads
- David King and Philip Wadler. Glasgow Workshop on Functional Programming, Springer Verlag Workshops in Computing Series, Ayr, July 1992.

- The essence of functional programming
- Philip Wadler. Invited talk, 19'th Symposium on Principles of Programming Languages, ACM Press, Albuquerque, January 1992.

- A Poor Man's Concurrency Monad
- Koen Claessen, Journal of Functional Programming. 9(3). 313--323. 1999.

- How to prove monad laws
- Oleg Kiselyov, v1.1, Sep 2, 2003, Originally posted as "Re: proving the monad laws" on the Haskell mailing list

### Monad comprehensions

- Comprehending monads
- Philip Wadler. Mathematical Structures in Computer Science, Special issue of selected papers from 6'th Conference on Lisp and Functional Programming, 2:461-493, 1992.

### Monad transformers

- Deriving Backtracking Monad Transformers
- Ralf Hinze. In Phil Wadler, editor, Proceedings of the 2000 International Conference on Functional Programming, Montreal, Canada, September 18-20, 2000.

- Deriving monad transformers
- Ralf Hinze. Technical Report IAI-TR-99-1, Institut fr Informatik III, Universitt Bonn, January 1999.

- Monad Transformers and Modular Interpreters
- Sheng Liang, Paul Hudak, and Mark P. Jones, In Conference Record of POPL'95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, CA, January 1995

- Backtracking, Interleaving, and Terminating Monad Transformers
- Oleg Kiselyov, Chung-chieh Shan, Daniel P. Friedman and Amr Sabry, Functional Pearl, to be presented at ICFP 2005.

### Monad theory

- Notions of computation and monads
- Eugenio Moggi. Information and Computation, 93(1):55-92, July 1991

- Computational lambda-calculus and monads
- Eugenio Moggi. Logic in Computer Science, 1989. LICS '89, Proceedings., Fourth Annual Symposium on (1989), pp. 14-23.

- Representing Layered Monads
- Andrzej Filinski. In Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 175--188, San Antonio, Texas, USA, January 1999. ACM Press.

- Monads and Effects
- Eugenio Moggi. APPSEM'00 Summer School, LNCS 2395, 2002

- Monadic Encapsulation of Effects: A Revised Approach (extended version)
- Journal of Functional Programming, 11(6), 2001.

## Arrows

### Arrows in Haskell

- Generalising Monads to Arrows,
- John Hughes, in Science of Computer Programming 37, pp67-111, May 2000. (draft online)

- A New Notation for Arrows
- Ross Paterson. In ICFP 2001, Firenze, Italy, pp229-240]

- Arrows and Computation
- Ross Paterson, in The Fun of Programming (Jeremy Gibbons and Oege de Moor, Eds.), pp201-222, Palgrave, 2003.

### Applications of arrows

- Genuinely Functional User Interfaces
- Anthony Courtney and Conal Elliott, in Haskell Workshop 2001, Firenze, Italy, pp41-69.

- Arrows, Robots, and Functional Reactive Programming
- Paul Hudak, Henrik Nilsson, Anthony Courtney and Jon Peterson, in Advanced Functional Programming, 4th International School, (Johan Jeuring and Simon Peyton Jones eds.), Oxford, Springer LNCS 2638, 2003.

- Polytypic compact printing and parsing
- Patrik Jansson and Johan Jeuring, In Proceedings European Symposium on Programming, LNCS 1576, pp273-287, Springer, 1999.

- Polytypic data conversion programs
- Patrik Jansson and Johan Jeuring, Science of Computer Programming 43(1), pp35-75, 2002.

- Hyperfunctions
- Sava Krstic, John Launchbury and Dusko Pavlovic, Workshop on Fixed Points in Computer Science, Sep 2001.

- Functional Reactive Programming, Continued
- Henrik Nilsson, Antony Courtney, and John Peterson. Proceedings of the 2002 ACM SIGPLAN Haskell Workshop (Haskell'02), pages 51 - 64, Pittsburgh, Pennsylvania, USA, October 2002. ACM Press.

### Arrow theory

- Categories for Computation in Context and Unified Logic
- Richard Blute, J.R.B. Cockett and R.A.G. Seely. In Journal of Pure and Applied Algebra 116:49-98, 1997.

- Premonoidal Categories and Notions of Computation
- John Power and Edmund Robinson. In Mathematical Structures in Computer Science 7(5):453-468, 1997.

- Environments, Continuation Semantics and Indexed Categories
- John Power and Hayo Thielecke. In Proc. Theoretical Aspects of Computer Science, LNCS 1281, pp 391-414, 1997.

- Closed Freyd- and kappa-categories
- John Power and Hayo Thielecke. ICALP'99, LNCS 1644, Springer, 1999.