@article(Abramsky-linearity, author = {Samson Abramsky and Guy McCusker}, year = {1996}, title = {Linearity, Sharing and State: a fully abstract game semantics for Idealized Algol with active expressions}, journal = {Electr. Notes Theor. Comput. Sci}, volume = {3}, pages = {2--14}, doi = {10.1016/S1571-0661(05)80398-6}, ) @article(relative-monads, author = {Thorsten Altenkirch and James Chapman and Tarmo Uustalu}, year = {2015}, title = {Monads need not be endofunctors}, journal = {Logical Methods in Computer Science}, volume = {11}, number = {1}, doi = {10.2168/LMCS-11(1:3)2015}, ) @article(atkey-parameterised, author = {Robert Atkey}, year = {2009}, title = {Parameterised Notions of Computation}, journal = {J. Functional Programming}, volume = {19}, number = {3--4}, pages = {335--376}, doi = {10.1145/158511.158524}, ) @techreport(Bagwell-VLIST, author = {Phil Bagwell}, year = {2002}, title = {Fast Functional Lists, Hash-Lists, Deques and Variable Length Arrays}, type = {Technical Report}, institution = {EPFL}, url = {http://infoscience.epfl.ch/record/52465}, ) @inproceedings(KiCS2, author = {Bra{\ss}el, Bernd and Michael Hanus and Bj{\"o}rn Peem{\"o}ller and Fabian Reck}, year = {2011}, title = {KiCS2: A New Compiler from Curry to Haskell}, booktitle = {Functional and Constraint Logic Programming - 20th International Workshop, WFLP 2011, Odense, Denmark, July 19th, Proceedings}, series = {Lecture Notes in Computer Science}, volume = {6816}, publisher = {Springer}, pages = {1--18}, doi = {10.1007/978-3-642-22531-4\_1}, ) @book(UniversalAlgebraCourse, author = {Stanley Burris and H. P. Sankappanavar}, year = {1981}, title = {A Course in Universal Algebra}, series = {Graduate Texts in Mathematics}, volume = {78}, publisher = {Springer, New York}, doi = {10.1007/978-1-4613-8130-3}, url = {http://www.math.uwaterloo.ca/~snburris/htdocs/UALG/univ-algebra2012.pdf}, ) @article(multi-stage-monad, author = {Jacques Carette and Oleg Kiselyov}, year = {2011}, title = {Multi-stage Programming with Functors and Monads: Eliminating Abstraction Overhead from Generic Code}, journal = {Science of Computer Programming}, volume = {76}, number = {5}, pages = {349--375}, doi = {10.1016/j.scico.2008.09.008}, ) @article(church-formulation, author = {Alonzo Church}, year = {1940}, title = {A Formulation of the Simple Theory of Types}, journal = {Journal of Symbolic Logic}, volume = {5}, number = {2}, pages = {56--68}, doi = {10.2307/2267254}, ) @article(Conway-coroutine, author = {Melvin E. Conway}, year = {1963}, title = {Design of a separable transition-diagram compiler}, journal = {Commun. ACM}, volume = {6}, number = {7}, pages = {396--408}, doi = {10.1145/366663.366704}, ) @inproceedings(CousotCousot77, author = {Patrick Cousot and Radhia Cousot}, year = {1977}, title = {Abstract Interpretation: {A} Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints}, booktitle = {Fourth ACM Symposium on Principles of Programming Language, Los Angeles}, publisher = {ACM Press, New York}, pages = {238--252}, ) @article(lax-logic, author = {Matt Fairtlough and Michael Mendler}, year = {1997}, title = {Propositional Lax Logic}, journal = {Information and Computation}, volume = {137}, number = {1}, pages = {1--33}, doi = {10.1006/inco.1997.2627}, ) @article(fischer-purely, author = {Sebastian Fischer and Oleg Kiselyov and Chung-chieh Shan}, year = {2011}, title = {Purely Functional Lazy Nondeterministic Programming}, journal = {Journal of Functional Programming}, volume = {21}, number = {4--5}, pages = {413--465}, doi = {10.1016/S0049-237X(08)72018-4}, ) @techreport(Goguen-noHO, author = {Joseph A. Goguen}, year = {1988}, title = {Higher Order Functions Considered Unnecessary for Higher Order Programming}, type = {Technical Report}, number = {SRI-CSL-88-1}, institution = {Computer Science Laboratory, SRI International}, ) @inproceedings(ML-original, author = {M. Gordon and R. Milner and L. Morris and M. Newey and C. Wadsworth}, year = {1978}, title = {A Metalanguage for Interactive Proof in {LCF}}, booktitle = {Conference Record of the Fifth Annual {ACM} Symposium on Principles of Programming Languages}, organization = {ACM SIGACT-SIGPLAN}, address = {Tucson, Arizona}, pages = {119--130}, url = {http://www-public.tem-tsp.eu/~gibson/Teaching/CSC4504/ReadingMaterial/GordonMMNW78.pdf}, ) @manual(CurryReport, author = {Michael Hanus}, year = {2006}, title = {Curry: An Integrated Functional Logic Language (Vers.\ 0.8.2)}, note = {\url{http://www.curry-language.org}}, ) @unpublished(Harper-commentary, author = {Robert Harper}, year = {2017}, title = {Commentary on Practical Foundations for Programming Languages (Second Edition)}, url = {http://www.cs.cmu.edu/~rwh/pfpl/commentary.pdf}, ) @article(LF, author = {Robert Harper and Furio Honsell and Gordon Plotkin}, year = {1993}, title = {A Framework for Defining Logics}, journal = {Journal of the {ACM}}, volume = {40}, number = {1}, pages = {143--184}, doi = {10.1145/138027.138060}, ) @article(hudak-building, author = {Paul Hudak}, year = {1996}, title = {Building Domain-Specific Embedded Languages}, journal = {{ACM} Computing Surveys}, volume = {28}, number = {4es}, pages = {196}, doi = {10.1145/242224.242477}, ) @article(Arrows, author = {J. Hughes}, year = {2000}, title = {Generalising monads to arrows}, journal = {Science of Computer Programming}, volume = {37}, pages = {67--111}, doi = {10.1016/S0167-6423(99)00023-4}, ) @article(hughes-why, author = {John Hughes}, year = {1989}, title = {Why Functional Programming Matters}, journal = {The Computer Journal}, volume = {32}, number = {2}, pages = {98--107}, doi = {10.1093/comjnl/32.2.98}, url = {http://www.cse.chalmers.se/~rjmh/Papers/whyfp.html}, ) @book(jones-partial, author = {Neil D. Jones and Carsten K. Gomard and Peter Sestoft}, year = {1993}, title = {Partial Evaluation and Automatic Program Generation}, publisher = {Prentice-Hall}, address = {Englewood Cliffs, NJ}, ) @incollection(JonesNielson95, author = {Neil D. Jones and Flemming Nielson}, year = {1995}, title = {Abstract Interpretation: Semantics-Based Tool for Program Analysis}, editor = {Samson Abramsky and Dov M. Gabbay and Tom S. E. Maibaum}, booktitle = {Semantic Modelling}, series = {Handbook of Logic in Computer Science}, volume = {4}, publisher = {Clarendon Press, Oxford , UK}, pages = {527--636}, ) @misc(MetaOCaml, author = {Oleg Kiselyov}, title = {{BER} MetaOCaml Home page}, url = {http://okmij.org/ftp/ML/MetaOCaml.html}, ) @incollection(tagless-final-oxford, author = {Oleg Kiselyov}, year = {2012}, title = {Typed Tagless Final Interpreters}, booktitle = {Proceedings of the 2010 International Spring School Conference on Generic and Indexed Programming}, series = {SSGIP'10}, publisher = {Springer-Verlag}, address = {Berlin, Heidelberg}, pages = {130--174}, doi = {10.1007/978-3-642-32202-0\_3}, ) @inproceedings(freer, author = {Oleg Kiselyov and Hiromi Ishii}, year = {2015}, title = {Freer monads, more extensible effects}, booktitle = {Haskell}, publisher = {ACM}, pages = {94--105}, doi = {10.1145/2804302.2804319}, ) @inproceedings(exteff, author = {Oleg Kiselyov and Amr Sabry and Cameron Swords}, year = {2013}, title = {Extensible effects: an alternative to monad transformers}, booktitle = {Haskell}, publisher = {ACM}, pages = {59--70}, doi = {10.1145/2503778.2503791}, ) @article(Applicative, author = {Conor McBride and Ross Paterson}, year = {2008}, title = {Applicative Programming with Effects}, journal = {J. Functional Programming}, volume = {18}, number = {1}, pages = {1--13}, doi = {10.1017/S0956796800003658}, ) @inproceedings(moggi-multi-stage, author = {Eugenio Moggi and Sonia Fagorzi}, year = {2003}, title = {A Monadic Multi-stage Metalanguage}, editor = {Andrew D. Gordon}, booktitle = {Proceedings of {FoSSaCS 2003}: Foundations of Software Science and Computational Structures, 6th International Conference}, series = {LNCS}, volume = {2620}, publisher = {Springer}, pages = {358--374}, url = {http://www.disi.unige.it/person/MoggiE/ftp/fossacs03.pdf}, ) @misc(tagless-final-bioinformatics, author = {Sebastien Mondet}, year = {2017}, title = {Bioinformatics, The Typed Tagless Final Way}, url = {https://icfp17.sigplan.org/event/ocaml-2017-papers-bioinformatics-the-typed-tagless-final-way}, ) @techreport(Against-C, author = {P. J. Moylan}, year = {1992}, title = {The Case against {C}}, type = {Technical Report}, number = {TR--EE9240}, institution = {Centre for Industrial Control Science, Department of Electrical and Computer Engineering}, address = {University of Newcastle, Australia}, ) @article(PD-judg, author = {Frank Pfenning and Rowan Davies}, year = {2001}, title = {A judgmental reconstruction of modal logic}, journal = {Mathematical Structures in Computer Science}, volume = {11}, number = {4}, pages = {511--540}, doi = {10.1017/S0960129501003322}, ) @book(polya-how, author = {George P{\'o}lya}, year = {1945}, title = {How to Solve It}, publisher = {Princeton University Press}, address = {Princeton, NJ}, ) @article(rabin-scott, author = {Michael O. Rabin and Dana Scott}, year = {1959}, title = {Finite Automata and Their Decision Problems}, journal = {{IBM} Journal of Research and Development}, volume = {3}, pages = {114--125}, doi = {10.1147/rd.32.0114}, ) @incollection(reynolds-essence, author = {John C. Reynolds}, year = {1981}, title = {The Essence of {A}lgol}, editor = {Jacobus Willem de Bakker and J. C. van Vliet}, booktitle = {Algorithmic Languages}, publisher = {North-Holland}, address = {Amsterdam}, pages = {345--372}, ) @article(LMS, author = {Tiark Rompf and Martin Odersky}, year = {2012}, title = {Lightweight modular staging: a pragmatic approach to runtime code generation and compiled {DSL}s}, journal = {Commun. ACM}, volume = {55}, number = {6}, pages = {121--130}, doi = {10.1145/2184319.2184345}, ) @inproceedings(performance-DSL, author = {Tiark Rompf and Arvind K. Sujeeth and HyoukJoong Lee and Kevin J. Brown and Hassan Chafi and Martin Odersky and Kunle Olukotun}, year = {2011}, title = {Building-Blocks for Performance Oriented {DSLs}}, booktitle = {DSL}, pages = {93--117}, doi = {10.4204/EPTCS.66.5}, ) @inproceedings(Staton-algebras, author = {Sam Staton}, year = {2013}, title = {Instances of Computational Effects: An Algebraic Perspective}, booktitle = {LICS}, publisher = {IEEE Computer Society}, pages = {519}, doi = {10.1109/LICS.2013.58}, ) @inproceedings(swamy11monad, author = {Nikhil Swamy and Nataliya Guts and Daan Leijen and Michael Hicks}, year = {2011}, title = {Lightweight Monadic Programming in {ML}}, booktitle = {ICFP'11}, pages = {15--27}, doi = {10.1145/2034773.2034778}, ) @article(Tait-intensional, author = {William W. Tait}, year = {1967}, title = {Intensional Interpretations of Functionals of Finite Type {I}}, journal = {Journal of Symbolic Logic}, volume = {32}, number = {2}, pages = {198--212}, doi = {10.1007/BF01447860}, ) @article(Wadler-monad-cont, author = {Philip Wadler}, year = {1994}, title = {Monads and Composable Continuations}, journal = {Lisp and Symbolic Computation}, volume = {7}, number = {1}, pages = {39--56}, doi = {10.1007/BF01019944}, ) @article(wand-specifications, author = {Mitchell Wand}, year = {1982}, title = {Specifications, Models, and Implementations of Data Abstractions}, journal = {Theoretical Computer Science}, volume = {20}, number = {1}, pages = {3--32}, doi = {10.1016/0304-3975(82)90097-4}, ) @inproceedings(modular-implicits, author = {Leo White and Fr{\'e}d{\'e}ric Bour and Jeremy Yallop}, year = {2014}, title = {Modular implicits}, editor = {Oleg Kiselyov and Jacques Garrigue}, booktitle = {ML/OCaml}, series = {EPTCS}, volume = {198}, pages = {22--63}, doi = {10.4204/EPTCS.198.2}, ) @incollection(Wirsing-specifications, author = {Martin Wirsing}, year = {1990}, title = {Algebraic specifications}, editor = {J. van Leeuwen}, booktitle = {Handbook of Theoretical Computer Science B}, publisher = {Elsevier}, pages = {675--788}, )