References

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

Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org