My PhD dissertation at the University of Edinburgh, Scotland https://www.dhil.net/research/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

877 lines
24 KiB

# Daniel's master's thesis (initial implementation of handlers in Links)
@MastersThesis{Hillerstrom15,
author = {Daniel Hillerström},
title = {Handlers for Algebraic Effects in {Links}},
school = {School of Informatics, the University of Edinburgh},
address = {Scotland},
month = aug,
year = 2015
}
# Daniel's master's thesis (abstract message-passing concurrency model, compilation of handlers)
@MastersThesis{Hillerstrom16,
author = {Daniel Hillerström},
title = {Compilation of Effect Handlers and their Applications in Concurrency},
school = {School of Informatics, the University of Edinburgh},
address = {Scotland},
optmonth = aug,
year = 2016,
}
# OCaml handlers
@misc{DolanWSYM15,
title = {Effective Concurrency through Algebraic Effects},
author = {Stephen Dolan and Leo White and {KC} Sivaramakrishnan and Jeremy Yallop and Anil Madhavapeddy},
year = 2015,
howpublished = {OCaml Workshop}
}
@misc{DolanWM14,
title = {Multicore {OCaml}},
author = {Stephen Dolan and Leo White and Anil Madhavapeddy},
year = {2014},
howpublished = {OCaml Workshop}
}
@inproceedings{DolanEHMSW17,
author = {Stephen Dolan and
Spiros Eliopoulos and
Daniel Hillerstr{\"{o}}m and
Anil Madhavapeddy and
K. C. Sivaramakrishnan and
Leo White},
title = {Concurrent System Programming with Effect Handlers},
booktitle = {{TFP}},
series = {Lecture Notes in Computer Science},
volume = {10788},
pages = {98--117},
publisher = {Springer},
year = {2017}
}
# Efficient one-shot continuations
@inproceedings{BruggemanWD96,
author = {Carl Bruggeman and
Oscar Waddell and
R. Kent Dybvig},
editor = {Charles N. Fischer},
title = {Representing Control in the Presence of One-Shot Continuations},
booktitle = {Proceedings of the {ACM} SIGPLAN'96 Conference on Programming Language
Design and Implementation (PLDI), Philadephia, Pennsylvania, May 21-24,
1996},
pages = {99--107},
publisher = {{ACM}},
year = {1996},
OPTurl = {http://doi.acm.org/10.1145/231379.231395},
OPTdoi = {10.1145/231379.231395},
timestamp = {Mon, 21 May 2012 16:19:53 +0200},
biburl = {http://dblp.uni-trier.de/rec/bib/conf/pldi/BruggemanWD96},
bibsource = {dblp computer science bibliography, http://dblp.org}
}
# Links compiler + Multicore OCaml
@Misc{HillerstromLS16,
author = {Daniel Hillerström and Sam Lindley and KC Sivaramakrishnan},
title = {Compiling {Links} Effect Handlers to the {OCaml} Backend},
year = {2016},
optmonth = sep,
howpublished = {{ML Workshop}}
}
# Core references on handlers
@article{PlotkinP13,
author = {Gordon D. Plotkin and
Matija Pretnar},
title = {Handling Algebraic Effects},
journal = {Logical Methods in Computer Science},
volume = {9},
number = {4},
year = {2013},
OPTurl = {http://dx.doi.org/10.2168/LMCS-9(4:23)2013},
OPTdoi = {10.2168/LMCS-9(4:23)2013},
timestamp = {Thu, 31 Aug 4448958 16:06:56 +},
biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/PlotkinP13},
bibsource = {dblp computer science bibliography, http://dblp.org}
}
@article{PlotkinP03,
author = {Gordon D. Plotkin and
John Power},
title = {Algebraic Operations and Generic Effects},
journal = {Applied Categorical Structures},
volume = {11},
number = {1},
pages = {69--94},
year = {2003},
OPTurl = {http://dx.doi.org/10.1023/A:1023064908962},
OPTdoi = {10.1023/A:1023064908962},
timestamp = {Mon, 29 May 2006 12:06:44 +0200},
biburl = {http://dblp.uni-trier.de/rec/bib/journals/acs/PlotkinP03},
bibsource = {dblp computer science bibliography, http://dblp.org}
}
@inproceedings{PlotkinP01,
author = {Gordon D. Plotkin and
John Power},
title = {Adequacy for Algebraic Effects},
booktitle = {FoSSaCS},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {2030},
pages = {1--24},
publisher = {Springer},
year = {2001}
}
# Other algebraic effects and handlers
@InProceedings{Lindley14,
author = {Sam Lindley},
editor = {Jos{\'{e}} Pedro Magalh{\~{a}}es and
Tiark Rompf},
title = {Algebraic effects and effect handlers for idioms and arrows},
booktitle = {Proceedings of the 10th {ACM} {SIGPLAN} workshop on Generic programming,
{WGP} 2014, Gothenburg, Sweden, August 31, 2014},
pages = {47--58},
publisher = {{ACM}},
year = {2014},
OPTurl = {http://doi.acm.org/10.1145/2633628.2633636},
OPTdoi = {10.1145/2633628.2633636},
timestamp = {Thu, 25 Jun 2015 13:50:37 +0200},
biburl = {http://dblp.uni-trier.de/rec/bib/conf/icfp/Lindley14},
bibsource = {dblp computer science bibliography, http://dblp.org}
}
@article{Pretnar15,
author = {Matija Pretnar},
title = {An Introduction to Algebraic Effects and Handlers},
journal = {Electr. Notes Theor. Comput. Sci.},
volume = {319},
pages = {19--35},
year = {2015},
note = {Invited tutorial paper}
}
@article{KammarP17,
author = {Ohad Kammar and Matija Pretnar},
title = {No value restriction is needed for algebraic effects and handlers},
journal = {Journal of Functional Programming},
year = 2017,
OPTdoi = {https://doi.org/10.1017/S0956796816000320},
volume = 27
}
@article{ForsterKLP17,
author = {Yannick Forster and
Ohad Kammar and
Sam Lindley and
Matija Pretnar},
title = {On the Expressive Power of User-Defined Effects: Effect Handlers,
Monadic Reflection, Delimited Control},
journal = {{PACMPL}},
volume = {1},
number = {ICFP},
articleno = {13},
numpages = {29},
month = sep,
year = {2017}
}
@article{ForsterKLP19,
author = {Yannick Forster and
Ohad Kammar and
Sam Lindley and
Matija Pretnar},
title = {On the expressive power of user-defined effects: Effect handlers,
monadic reflection, delimited control},
journal = {J. Funct. Program.},
volume = {29},
pages = {e15},
year = {2019}
}
# Eff
@article{BauerP15,
author = {Andrej Bauer and
Matija Pretnar},
title = {Programming with algebraic effects and handlers},
journal = {J. Log. Algebr. Meth. Program.},
volume = {84},
number = {1},
pages = {108--123},
year = {2015}
}
# Idris
@inproceedings{Brady13,
author = {Edwin Brady},
title = {Programming and reasoning with algebraic effects and dependent types},
booktitle = {{ICFP}},
pages = {133--144},
publisher = {{ACM}},
year = {2013}
}
@inproceedings{Brady14,
author = {Edwin Brady},
title = {Resource-Dependent Algebraic Effects},
booktitle = {Trends in Functional Programming},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {8843},
pages = {18--33},
publisher = {Springer},
year = {2014}
}
# Leo's HOPE talk
@misc{White16,
author = {Leo White},
title = {Effective programming: bringing algebraic effects and handlers to {OCaml}},
year = 2016,
optmonth = sep,
howpublished = {Keynote at {HOPE}, Nara, Japan}
}
# Implementation of effect handlers in Links
@inproceedings{HillerstromL16,
author = {Daniel Hillerstr{\"{o}}m and
Sam Lindley},
title = {Liberating effects with rows and handlers},
booktitle = {TyDe@ICFP},
pages = {15--27},
publisher = {{ACM}},
year = {2016}
}
# Frank
@inproceedings{LindleyMM17,
author = {Sam Lindley and
Conor McBride and
Craig McLaughlin},
title = {Do be do be do},
booktitle = {{POPL}},
pages = {500--514},
publisher = {{ACM}},
year = {2017}
}
# Shonky
@misc{McBride16,
title={Shonky},
author={Conor McBride},
year=2016,
note={\url{https://github.com/pigworker/shonky}}
}
# Koka
@inproceedings{Leijen14,
author = {Daan Leijen},
title = {{Koka}: Programming with Row Polymorphic Effect Types},
booktitle = {{MSFP}},
series = {{EPTCS}},
volume = {153},
pages = {100--126},
year = {2014}
}
@inproceedings{Leijen17,
author = {Daan Leijen},
title = {Type directed compilation of row-typed algebraic effects},
booktitle = {{POPL}},
pages = {486--499},
publisher = {{ACM}},
year = {2017}
}
# Haskell implementations
@inproceedings{KiselyovSS13,
author = {Oleg Kiselyov and
Amr Sabry and
Cameron Swords},
title = {Extensible effects: an alternative to monad transformers},
booktitle = {Haskell},
pages = {59--70},
publisher = {{ACM}},
year = {2013}
}
@inproceedings{KiselyovI15,
author = {Oleg Kiselyov and
Hiromi Ishii},
title = {Freer monads, more extensible effects},
booktitle = {Haskell},
pages = {94--105},
publisher = {{ACM}},
year = {2015}
}
@inproceedings{KammarLO13,
author = {Ohad Kammar and
Sam Lindley and
Nicolas Oury},
title = {Handlers in action},
booktitle = {{ICFP}},
pages = {145--158},
publisher = {{ACM}},
year = {2013}
}
@inproceedings{WuSH14,
author = {Nicolas Wu and
Tom Schrijvers and
Ralf Hinze},
editor = {Wouter Swierstra},
title = {Effect handlers in scope},
booktitle = {Proceedings of the 2014 {ACM} {SIGPLAN} symposium on Haskell, Gothenburg,
Sweden, September 4-5, 2014},
pages = {1--12},
publisher = {{ACM}},
year = {2014},
url = {http://doi.acm.org/10.1145/2633357.2633358},
doi = {10.1145/2633357.2633358},
timestamp = {Mon, 08 Sep 2014 16:12:17 +0200},
biburl = {http://dblp.uni-trier.de/rec/bib/conf/haskell/WuSH14},
bibsource = {dblp computer science bibliography, http://dblp.org}
}
@inproceedings{WuS15,
author = {Nicolas Wu and
Tom Schrijvers},
title = {Fusion for Free - Efficient Algebraic Effect Handlers},
booktitle = {{MPC}},
series = {Lecture Notes in Computer Science},
volume = {9129},
pages = {302--322},
publisher = {Springer},
year = {2015}
}
# Prolog
@article{SchrijversDDW13,
author = {Tom Schrijvers and
Bart Demoen and
Benoit Desouter and
Jan Wielemaker},
title = {Delimited continuations for {Prolog}},
journal = {{TPLP}},
volume = {13},
number = {4-5},
pages = {533--546},
year = {2013}
}
@article{SalehS16,
author = {Amr Hany Saleh and
Tom Schrijvers},
title = {Efficient Algebraic Effect Handlers for {Prolog}},
journal = {{TPLP}},
year = {2016},
note = {Proceedings of {ICLP}}
}
# References on Links
@inproceedings{CooperLWY06,
author = {Ezra Cooper and
Sam Lindley and
Philip Wadler and
Jeremy Yallop},
title = {Links: Web Programming Without Tiers},
booktitle = {{FMCO}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {4709},
pages = {266--296},
publisher = {Springer},
year = {2006}
}
@inproceedings{LindleyC12,
author = {Sam Lindley and
James Cheney},
title = {Row-based effect types for database integration},
booktitle = {{TLDI}},
pages = {91--102},
publisher = {{ACM}},
year = {2012}
}
# Monads
@article{Atkey09,
author = {Robert Atkey},
title = {Parameterised notions of computation},
journal = {Journal of Functional Programming},
volume = {19},
number = {3-4},
pages = {335--376},
year = {2009}
}
@inproceedings{Moggi89,
author = {Eugenio Moggi},
title = {Computational Lambda-Calculus and Monads},
booktitle = {{LICS}},
pages = {14--23},
publisher = {{IEEE} Computer Society},
year = {1989}
}
@article{Moggi91,
author = {Eugenio Moggi},
title = {Notions of Computation and Monads},
journal = {Inf. Comput.},
volume = {93},
number = {1},
pages = {55--92},
year = {1991}
}
@inproceedings{Wadler92,
author = {Philip Wadler},
title = {The Essence of Functional Programming},
booktitle = {{POPL}},
pages = {1--14},
publisher = {{ACM}},
year = {1992}
}
@inproceedings{Wadler95,
author = {Philip Wadler},
title = {Monads for Functional Programming},
booktitle = {Advanced Functional Programming},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {925},
pages = {24--52},
publisher = {Springer},
year = {1995}
}
@article{Swierstra08,
author = {Wouter Swierstra},
title = {Data types {\`{a}} la carte},
journal = {Journal of Functional Programming},
volume = {18},
number = {4},
pages = {423--436},
year = {2008}
}
# WebAssembly
@misc{HaasRSTGWBH17,
author = {Andreas Haas and Andreas Rossberg and Ben L. Titzer and Dan Gohman and Luke Wagner and JF Bastien and Michael Holman},
title = {Bringing the {Web} up to Speed with {WebAssembly}},
year = 2017,
note = {Draft},
howpublished = {\url{https://people.mpi-sws.org/~rossberg/papers/Haas, Rossberg, Schuff, Titzer, Gohman, Wagner, Bastien, Holman - Bringing the Web up to Speed with WebAssembly [Draft].pdf}}
}
# ECMAScript
@misc{EMCA15,
author = {{Ecma International}},
title = {{ECMAScript} 2015 Language Specification},
year = 2015,
url = {http://www.ecma-international.org/ecma-262/6.0/index.html}
}
@misc{EMCA17,
author = {{Emca International}},
title = {{ECMAScript} 2017 Language Specification},
year = 2017,
url = {https://tc39.github.io/ecma262/}
}
# Hop.js
@inproceedings{SerranoP16,
author = {Manuel Serrano and
Vincent Prunet},
title = {A glimpse of Hopjs},
booktitle = {{ICFP}},
pages = {180--192},
publisher = {{ACM}},
year = {2016}
}
# A-normal form
@inproceedings{FlanaganSDF93,
author = {Cormac Flanagan and
Amr Sabry and
Bruce F. Duba and
Matthias Felleisen},
title = {The Essence of Compiling with Continuations},
booktitle = {{PLDI}},
pages = {237--247},
publisher = {{ACM}},
year = {1993}
}
@inproceedings{SabryW96,
author = {Amr Sabry and
Philip Wadler},
editor = {Robert Harper and
Richard L. Wexelblat},
title = {A Reflection on Call-by-Value},
booktitle = {Proceedings of the 1996 {ACM} {SIGPLAN} International Conference on
Functional Programming {(ICFP} '96), Philadelphia, Pennsylvania, May
24-26, 1996.},
pages = {13--24},
publisher = {{ACM}},
year = {1996},
OPTurl = {http://doi.acm.org/10.1145/232627.232631},
OPTdoi = {10.1145/232627.232631},
timestamp = {Tue, 11 Jun 2013 13:54:16 +0200},
biburl = {http://dblp.uni-trier.de/rec/bib/conf/icfp/SabryW96},
bibsource = {dblp computer science bibliography, http://dblp.org}
}
# fine-grained call-by-value
@article{LevyPT03,
author = {Paul Blain Levy and
John Power and
Hayo Thielecke},
title = {Modelling environments in call-by-value programming languages},
journal = {Inf. Comput.},
volume = {185},
number = {2},
pages = {182--210},
year = {2003}
}
# CPS
@article{Plotkin75,
author = {Gordon D. Plotkin},
title = {Call-by-Name, Call-by-Value and the lambda-Calculus},
journal = {Theor. Comput. Sci.},
volume = {1},
number = {2},
pages = {125--159},
year = {1975}
}
@techreport{Steele78,
title = {{RABBIT}: A Compiler for {SCHEME}},
author = {Guy Steele},
number = {AITR-474},
institution = {{INRIA}},
year = {1978},
}
@inproceedings{DanvyF90,
author = {Olivier Danvy and
Andrzej Filinski},
title = {Abstracting Control},
booktitle = {{LISP} and Functional Programming},
pages = {151--160},
year = {1990}
}
@article{DanvyF92,
author = {Olivier Danvy and
Andrzej Filinski},
title = {Representing Control: {A} Study of the {CPS} Transformation},
journal = {Mathematical Structures in Computer Science},
volume = {2},
number = {4},
pages = {361--391},
year = {1992}
}
@book{Appel92,
author = {Andrew W. Appel},
title = {Compiling with Continuations},
publisher = {Cambridge University Press},
year = {1992}
}
@article{DanvyN03,
author = {Olivier Danvy and
Lasse R. Nielsen},
title = {A first-order one-pass {CPS} transformation},
journal = {Theor. Comput. Sci.},
volume = {308},
number = {1-3},
pages = {239--257},
year = {2003}
}
@inproceedings{Kennedy07,
author = {Andrew Kennedy},
title = {Compiling with continuations, continued},
booktitle = {{ICFP}},
pages = {177--190},
publisher = {{ACM}},
year = {2007}
}
@inproceedings{MaterzokB11,
author = {Marek Materzok and
Dariusz Biernacki},
title = {Subtyping delimited continuations},
booktitle = {{ICFP}},
pages = {81--93},
publisher = {{ACM}},
year = {2011}
}
@inproceedings{MaterzokB12,
author = {Marek Materzok and
Dariusz Biernacki},
title = {A Dynamic Interpretation of the {CPS} Hierarchy},
booktitle = {{APLAS}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {7705},
pages = {296--311},
publisher = {Springer},
year = {2012}
}
@Misc{KiselyovS16,
author = {Oleg Kiselyov and KC Sivaramakrishnan},
title = {Eff directly in {OCaml}},
year = {2016},
optmonth = sep,
howpublished = {{ML Workshop}}
}
% fancy row typing systems that support shapes
@inproceedings{BerthomieuS95,
author = {Bernard Berthomieu and Camille le Moniès de Sagazan},
title = {A Calculus of Tagged Types, with applications to process languages},
booktitle = {Workshop on Types for Program Analysis},
year = 1995,
}
@techreport{Remy93,
title = {{Syntactic theories and the algebra of record terms}},
author = {Didier Remy},
number = {RR-1869},
institution = {{INRIA}},
year = {1993},
}
@article{Huet97,
author = {G{\'{e}}rard P. Huet},
title = {The Zipper},
journal = {J. Funct. Program.},
volume = {7},
number = {5},
pages = {549--554},
year = {1997},
OPTurl = {http://journals.cambridge.org/action/displayAbstract?aid=44121},
timestamp = {Fri, 10 Jun 2011 14:42:10 +0200},
biburl = {http://dblp.uni-trier.de/rec/bib/journals/jfp/Huet97},
bibsource = {dblp computer science bibliography, http://dblp.org}
}
@article{Hughes00,
author = {John Hughes},
title = {Generalising monads to arrows},
journal = {Sci. Comput. Program.},
volume = {37},
number = {1-3},
pages = {67--111},
year = {2000}
}
% CPS for effect handlers
@inproceedings{HillerstromLAS17,
author = {Daniel Hillerstr{\"{o}}m and
Sam Lindley and
Robert Atkey and
K. C. Sivaramakrishnan},
title = {Continuation Passing Style for Effect Handlers},
booktitle = {{FSCD}},
series = {LIPIcs},
volume = {84},
pages = {18:1--18:19},
OPTpublisher = {Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik},
year = {2017}
}
% CEK
@InProceedings{FelleisenF86,
title={Control Operators, the {SECD}-machine, and the $\lambda$-Calculus},
author={Felleisen, Matthias and Friedman, Daniel P.},
year=1987,
booktitle = {Formal Description of Programming Concepts III},
OPTbooktitle = {The Proceedings of the Conference on Formal Description of Programming Concepts III, Ebberup, Denmark},
pages = {193--217},
OPTpublisher={North Holland}
}
@article{BiernackiPPS18,
author = {Dariusz Biernacki and
Maciej Pir{\'{o}}g and
Piotr Polesiuk and
Filip Sieczkowski},
title = {Handle with care: relational interpretation of algebraic effects and
handlers},
journal = {{PACMPL}},
volume = {2},
number = {{POPL}},
pages = {8:1--8:30},
year = {2018}
}
% explicit effect subtyping
@inproceedings{SalehKPS18,
author = {Amr Hany Saleh and
Georgios Karachalias and
Matija Pretnar and
Tom Schrijvers},
title = {Explicit Effect Subtyping},
booktitle = {{ESOP}},
series = {Lecture Notes in Computer Science},
volume = {10801},
pages = {327--354},
publisher = {Springer},
year = {2018}
}
# Pyro
@Misc{Goodman17,
author = {Noah Goodman},
title = {Uber {AI} {Labs} Open Sources {Pyro}, a Deep Probabilistic Programming Language},
month = nov,
year = 2017,
url = {https://eng.uber.com/pyro/}
}
# Meta programming
@article{Yallop17,
author = {Jeremy Yallop},
title = {Staged generic programming},
journal = {{PACMPL}},
volume = {1},
number = {{ICFP}},
pages = {29:1--29:29},
year = {2017}
}
# SML
@book{MilnerTHM97,
author = {Robin Milner and Mads Tofte and Robert Harper and David Macqueen},
title = {The Definition of {Standard} {ML}},
year = {1997},
isbn = {0262631814},
publisher = {MIT Press},
address = {Cambridge, MA, USA},
}
# Timeless classics
@article{Plotkin04a,
author = {Gordon D. Plotkin},
title = {A structural approach to operational semantics},
journal = {J. Log. Algebr. Program.},
volume = {60-61},
pages = {17--139},
year = {2004},
timestamp = {Mon, 21 Feb 2005 12:50:35 +0100},
biburl = {https://dblp.org/rec/bib/journals/jlp/Plotkin04a},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
# Felleisen's PhD thesis (evaluation contexts)
@phdthesis{Felleisen87,
author = {Matthias Felleisen},
title = {The Calculi of Lambda-nu-cs Conversion: A Syntactic Theory of Control and State in Imperative Higher-order Programming Languages},
year = {1987},
note = {AAI8727494},
publisher = {Indiana University},
address = {Indianapolis, IN, USA},
}
# The original lambda calculus reference
@InProceedings{Church32,
author = {Alonzo Church},
title = {A Set of Postulates for the Foundation of Logic},
year = {1932},
booktitle = {Annals of Mathematics},
pages = {346--366},
volume = {33}
}
# Termination analysis.
@article{Walther94,
author = {Christoph Walther},
title = {On Proving the Termination of Algorithms by Machine},
journal = {Artif. Intell.},
volume = {71},
number = {1},
pages = {101--157},
year = {1994}
}
% Control operators
@article{Landin65,
author = {Peter J. Landin},
title = {Correspondence between {ALGOL} 60 and Church's Lambda-notation: part
{I}},
journal = {Commun. {ACM}},
volume = {8},
number = {2},
pages = {89--101},
year = {1965}
}
@article{Landin65a,
author = {Peter J. Landin},
title = {A correspondence between {ALGOL} 60 and Church's Lambda-notations:
Part {II}},
journal = {Commun. {ACM}},
volume = {8},
number = {3},
pages = {158--167},
year = {1965}
}
@article{Landin98,
author = {Peter J. Landin},
title = {A Generalization of Jumps and Labels},
journal = {Higher-Order and Symbolic Computation},
volume = {11},
number = {2},
pages = {125--143},
year = {1998}
}
% System F
@phdthesis{Girard72,
author = {J. Y. Girard},
school = {Universit{\'e} Paris 7},
title = {Interpr{\'e}tation fonctionnelle et {\'e}limination des coupures de l'arithm{\'e}tique d'ordre sup{\'e}rieur},
type = {PhD thesis},
year = 1972
}
@inproceedings{Reynolds74,
author = {John C. Reynolds},
title = {Towards a theory of type structure},
booktitle = {Symposium on Programming},
series = {Lecture Notes in Computer Science},
volume = {19},
pages = {408--423},
publisher = {Springer},
year = {1974}
}
@inproceedings{Wadler89,
author = {Philip Wadler},
title = {Theorems for Free!},
booktitle = {{FPCA}},
pages = {347--359},
publisher = {{ACM}},
year = {1989}
}