Skip to main content

Algebra of Programming: Publications

Click here to download all publications in a single bibtex file

@unpublished{zippy,
  title = "Binomial Tabulation: A Short Story",
  author = "Hsiang-Shang Ko and Shin-Cheng Mu and Jeremy Gibbons",
  year = "2024",
  month = "February",
  url = "https://josh-hs-ko.github.io/manuscripts/BT.pdf",
}
@techreport{pocu,
  title = "Profunctor Optics, a Categorical Update",
  author = "Bryce Clarke and Derek Elkins and Jeremy Gibbons and Fosco Loregian and Bartosz Milewski and Emily Pillmore and Mario Román",
  year = "2024",
  journal = "Compositionality",
  number = "1",
  url = "https://compositionality-journal.org/papers/compositionality-6-1/",
  volume = "6",
  doi = "10.32408/compositionality-6-1",
}
@article{continued,
  title = "Continuation-Passing Style, Defunctionalization, Accumulations, and Associativity",
  author = "Jeremy Gibbons",
  year = "2022",
  journal = "The Art, Science, and Engineering of Programming",
  note = "Recipient of the Reviewers' Choice Award for 2022",
  number = "2",
  pages = "Article 7",
  url = "http://www.cs.ox.ac.uk/jeremy.gibbons/publications/continued.pdf",
  volume = "6",
  doi = "10.22152/programming-journal.org/2022/6/7",
}
@article{traversals,
  title = "Breadth-First Traversal Via Staging",
  author = "Jeremy Gibbons and Oisin Kidney and Tom Schrijvers and Nicolas Wu",
  year = "2022",
  booktitle = "Mathematics of Program Construction",
  pages = "1-33",
  publisher = "Springer",
  series = "LNCS",
  url = "https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/traversals.pdf",
  volume = "13544",
  doi = "10.1007/978-3-031-16912-0_1",
}
@inproceedings{selection,
  title = "Algorithm Design with the Selection Monad",
  author = "Johannes Hartmann and Jeremy Gibbons",
  year = "2022",
  booktitle = "Trends in Functional Programming",
  editor = "Wouter Swierstra and Nicolas Wu",
  pages = "126-143",
  series = "LNCS",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/selection.pdf",
  volume = "13401",
  doi = "10.1007/978-3-031-21314-4_7",
}
@article{copro,
  title = "How to Design Co-Programs",
  author = "Jeremy Gibbons",
  year = "2021",
  journal = "Journal of Functional Programming",
  number = "e15",
  url = "http://www.cs.ox.ac.uk/jeremy.gibbons/publications/copro.pdf",
  volume = "31",
  doi = "10.1017/S0956796821000113",
}
@incollection{algorithmics,
  title = "Algorithmics",
  author = "Richard S. Bird, Jeremy Gibbons, Ralf Hinze, Peter Hoefner, Johan Jeuring, Lambert G. L. T. Meertens, Bernhard Moeller, Carroll Morgan, Tom Schrijvers, Wouter Swierstra, Nicolas Wu",
  year = "2021",
  booktitle = "Advancing Research in Information and Communication Technology - IFIP's Exciting First 60+ Years, Views from the Technical Committees and Working Groups",
  editor = "Michael Goedicke, Erich J. Neuhold, Kai Rannenberg",
  pages = "59-98",
  publisher = "Springer",
  series = "IFIP Advances in Information and Communication Technology",
  volume = "600",
  doi = "10.1007/978-3-030-81701-5_3",
}
@phdthesis{MaaikeZwartDPhilThesis,
  title = "On the Non-Compositionality of Monads via Distributive Laws",
  author = "Maaike Zwart",
  year = "2020",
  month = "September",
  school = "Department of Computer Science, University of Oxford",
}
@book{adwh,
  title = "Algorithm Design with Haskell",
  author = "Richard Bird and Jeremy Gibbons",
  year = "2020",
  isbn = "9781108491617",
  month = "July",
  publisher = "Cambridge University Press",
  url = "http://www.cs.ox.ac.uk/publications/books/adwh/",
}
@article{ifip60,
  title = "Algorithmics",
  author = "Richard Bird and Jeremy Gibbons and Ralf Hinze and Peter Hoefner and Johan Jeuring and Lambert Meertens and Bernhard Moeller and Carroll Morgan and Tom Schrijvers and Wouter Swierstra and Nicolas Wu",
  year = "2020",
  booktitle = "Advancing Research in Information and Communication Technology",
  month = "July",
  publisher = "Springer",
  series = "IFIP Advances in Information and Communication Technology",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/ifip60.pdf",
  volume = "600",
  doi = "10.1007/978-3-030-81701-5_3",
}
@inbook{qif,
  title = "Quantitative Information Flow with Monads in Haskell",
  author = "Jeremy Gibbons and Annabelle McIver and Carroll Morgan and Tom Schrijvers",
  year = "2020",
  booktitle = "Foundations of Probabilistic Programming",
  editor = "Gilles Barthe and Joost-Pieter Katoen and Alexandra Silva",
  publisher = "Cambridge University Press",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/kuifje.pdf",
  doi = "10.1017/9781108770750",
}
@inproceedings{squiggol-history,
  title = "The School of Squiggol: A History of the Bird-Meertens Formalism",
  author = "Jeremy Gibbons",
  year = "2020",
  booktitle = "Formal Methods (Workshop on History of Formal Methods)",
  editor = "Troy Astarte",
  publisher = "Springer",
  series = "LNCS",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/squiggol-history.pdf",
  volume = "12233",
  doi = "10.1007/978-3-030-54997-8_2",
}
@phdthesis{zakian-dphil,
  title = "Cost semantics for heterogeneous parallel functional languages",
  author = "Tim Zakian",
  year = "2020",
  url = "https://ora.ox.ac.uk/objects/uuid:9f973626-8981-4329-ab38-76ba2efe301f",
}
@inproceedings{asymm,
  title = "Coding with Asymmetric Numeral Systems",
  author = "Jeremy Gibbons",
  year = "2019",
  booktitle = "Mathematics of Program Construction",
  month = "October",
  pages = "444-465",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/asymm.pdf",
  volume = "11825",
  doi = "10.1007/978-3-030-33636-3_16",
}
@article{reladj,
  title = "Relational Algebra by Way of Adjunctions",
  author = "Jeremy Gibbons and Fritz Henglein and Ralf Hinze and Nicolas Wu",
  year = "2018",
  journal = "PACMPL",
  month = "September",
  note = "Winner of a Distinguished Paper Award",
  number = "ICFP",
  url = "http://www.cs.ox.ac.uk/jeremy.gibbons/publications/reladj.pdf",
  volume = "2",
  doi = "10.1145/3236781",
}
@article{proyo,
  title = "What You Needa Know About Yoneda: Profunctor Optics and the Yoneda Lemma",
  author = "Guillaume Boisseau and Jeremy Gibbons",
  year = "2018",
  journal = "PACMPL",
  month = "September",
  note = "Functional Pearl",
  number = "ICFP",
  url = "http://www.cs.ox.ac.uk/jeremy.gibbons/publications/proyo.pdf",
  volume = "2",
  doi = "10.1145/3236779",
}
@article{methodological,
  title = "On "Methodological Irregularities in Programming Language Research"",
  author = "Jeremy Gibbons",
  year = "2018",
  journal = "IEEE Computer",
  month = "April",
  number = "4",
  pages = "4-7",
  url = "http://www.cs.ox.ac.uk/jeremy.gibbons/publications/methodological.pdf",
  volume = "51",
  doi = "10.1109/MC.2018.2141027",
}
@book{ssbx,
  title = "Bidirectional Transformations",
  author = "Jeremy Gibbons and Perdita Stevens",
  year = "2018",
  editor = "Jeremy Gibbons and Perdita Stevens",
  isbn = "978-3-319-79107-4",
  publisher = "Springer",
  series = "LNCS",
  url = "https://link.springer.com/book/10.1007%2F978-3-319-79108-1",
  volume = "9715",
  doi = "10.1007/978-3-319-79108-1",
}
@article{ssbx-intro,
  title = "Introduction to Bidirectional Transformations",
  author = "Faris Abou-Saleh and James Cheney and Jeremy Gibbons and James McKinna and Perdita Stevens",
  year = "2018",
  booktitle = "Bidirectional Transformations",
  pages = "1-28",
  publisher = "Springer",
  series = "LNCS",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/ssbx-intro.pdf",
  volume = "9715",
  doi = "10.1007/978-3-319-79108-1_1",
}
@article{cbx-jot,
  title = "Coalgebraic Aspects of Bidirectional Computation",
  author = "Faris Abou-Saleh and James McKinna and Jeremy Gibbons",
  year = "2017",
  journal = "Journal of Object Technology",
  number = "1",
  pages = "1:1-29",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/cbx-jot.pdf",
  volume = "16",
  doi = "10.5381/jot.2017.16.1.a1",
}
@article{leastchange-jot,
  title = "On Principles of Least Change and Least Surprise for Bidirectional Transformations",
  author = "James Cheney and Jeremy Gibbons and James McKinna and Perdita Stevens",
  year = "2017",
  journal = "Journal of Object Technology",
  number = "1",
  pages = "3:1-31",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/leastchange-jot.pdf",
  volume = "16",
  doi = "10.5381/jot.2017.16.1.a3",
}
@phdthesis{diaa,
  title = "Distributive Interaction of Algebraic Effects",
  author = "Kwok-Ho Cheung",
  year = "2017",
  url = "https://ora.ox.ac.uk/objects/uuid:66106628-0a71-4564-bc34-c398db766818",
}
@inproceedings{ringads,
  title = "Comprehending Ringads: For Phil Wadler, on the Occasion of his 60th Birthday",
  author = "Jeremy Gibbons",
  year = "2016",
  booktitle = "A List of Successes That Can Change the World",
  month = "April",
  pages = "132-151",
  publisher = "Springer",
  series = "LNCS",
  url = "http://www.cs.ox.ac.uk/jeremy.gibbons/publications/ringads.pdf",
  volume = "9600",
  doi = "10.1007/978-3-319-30936-1_7",
}
@inproceedings{mlenses,
  title = "Reflections on Monadic Lenses",
  author = "Faris Abou-Saleh and James Cheney and Jeremy Gibbons and James McKinna and Perdita Stevens",
  year = "2016",
  booktitle = "A List of Successes That Can Change the World",
  month = "April",
  pages = "1-31",
  publisher = "Springer",
  series = "LNCS",
  url = "http://www.cs.ox.ac.uk/jeremy.gibbons/publications/mlenses.pdf",
  volume = "9600",
  doi = "10.1007/978-3-319-30936-1_1",
}
@article{progorn,
  title = "Programming with Ornaments",
  author = "Hsiang-Shang Ko and Jeremy Gibbons",
  year = "2016",
  journal = "Journal of Functional Programming",
  month = "December",
  url = "http://www.cs.ox.ac.uk/jeremy.gibbons/publications/progorn.pdf",
  volume = "27",
  doi = "10.1017/S0956796816000307",
}
@inproceedings{entangled,
  title = "Notions of Bidirectional Computation and Entangled State Monads",
  author = "Faris Abou-Saleh and James Cheney and Jeremy Gibbons and James McKinna and Perdita Stevens",
  year = "2015",
  booktitle = "Mathematics of Program Construction",
  month = "June",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/entangled.pdf",
}
@article{bx-effectful,
  title = "Bidirectional Transformation is Effectful",
  author = "Faris Abou-Saleh and James Cheney and Jeremy Gibbons and James McKinna and Perdita Stevens",
  year = "2015",
  booktitle = "SNAPL: The Inaugural Summit on Advances in Programming Languages",
  month = "May",
  note = "This is an abstract of the paper "Notions of Bidirectional Computation and Entangled State Monads", to appear at MPC 2015",
  url = "http://www.cs.ox.ac.uk/jeremy.gibbons/publications/bx-effectful.pdf",
}
@inproceedings{entangled-abs,
  title = "Entangled State Monads",
  author = "James Cheney and James McKinna and Perdita Stevens and Jeremy Gibbons and Faris Abou-Saleh",
  year = "2014",
  booktitle = "BX Workshop",
  month = "March",
  url = "http://ceur-ws.org/Vol-1133/paper-17.pdf",
}
@inproceedings{repo,
  title = "Towards a Repository of BX Examples",
  author = "James Cheney and James McKinna and Perdita Stevens and Jeremy Gibbons",
  year = "2014",
  booktitle = "BX Workshop",
  month = "March",
  url = "http://ceur-ws.org/Vol-1133/paper-14.pdf",
}
@phdthesis{pirog-dphil,
  title = "Completely iterative monads in semantics of coinductive programs",
  author = "Maciej Adam Pirog",
  year = "2014",
  url = "https://ora.ox.ac.uk/objects/uuid:9957b2f8-b08c-40fd-9bf1-b815b9abd25a",
}
@phdthesis{Ko-thesis,
  title = "Analysis and synthesis of inductive families",
  author = "Hsiang-Shang Ko",
  year = "2014",
  school = "University of Oxford",
  url = "https://github.com/josh-hs-ko/dissertation/raw/master/dissertation.pdf",
}
@misc{Ko-pcOrn-categorical,
  title = "Categorical organisation of the ornament–refinement framework",
  author = "Hsiang-Shang Ko and Jeremy Gibbons",
  year = "2013",
  howpublished = "Submitted to POPL'14",
  month = "July",
  url = "http://www.cs.ox.ac.uk/people/hsiang-shang.ko/pcOrn-categorical/pcOrn-categorical.pdf",
}
@article{Ko-pcOrn,
  title = "Modularising inductive families",
  author = "Hsiang-Shang Ko and Jeremy Gibbons",
  year = "2013",
  journal = "Progress in Informatics",
  number = "10",
  pages = "65-88",
  url = "http://www.cs.ox.ac.uk/people/hsiang-shang.ko/pcOrn/pcOrn.pdf",
  doi = "10.2201/NiiPi.2013.10.5",
}
@inproceedings{Ko-algOrn,
  title = "Relational algebraic ornaments",
  author = "Hsiang-Shang Ko and Jeremy Gibbons",
  year = "2013",
  booktitle = "Dependently Typed Programming",
  publisher = "ACM",
  series = "DTP'13",
  url = "http://www.cs.ox.ac.uk/people/hsiang-shang.ko/algOrn/algOrn.pdf",
  doi = "10.1145/2502409.2502413",
}
@unpublished{HJWHM12Sor,
  title = "Sorting with Bialgebras and Distributive Laws",
  author = "Hinze, Ralf and James, Daniel W.H. and Harper, Thomas and Wu, Nicolas and Magalhães, José Pedro",
  year = "2012",
  month = "May",
  note = "Accepted to WGP '12",
  url = "http://www.cs.ox.ac.uk/people/daniel.james/sorting.html",
}
@article{refactoringpm,
  title = "Refactoring Pattern Matching",
  author = "Meng Wang and Jeremy Gibbons and Kazutaka Matsuda and Zhenjiang Hu",
  year = "2012",
  journal = "Science of Computer Programming",
  month = "January",
  note = "Revised version of the MPC2010 paper "Gradual Refinement"",
  number = "11",
  pages = "2216-2242",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/refactoringpm.pdf",
  volume = "78",
  doi = "10.1016/j.scico.2012.07.014",
}
@article{wam,
  title = "A Functional Derivation of the Warren Abstract Machine",
  author = "Maciej Pirog and Jeremy Gibbons",
  year = "2011",
  note = "Submitted for publication",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/wam.pdf",
}
@inproceedings{Ko-OAOAOO,
  title = "Modularising inductive families",
  author = "Hsiang-Shang Ko and Jeremy Gibbons",
  year = "2011",
  booktitle = "Workshop on Generic Programming",
  pages = "13-24",
  publisher = "ACM",
  series = "WGP'11",
  url = "http://www.cs.ox.ac.uk/people/hsiang-shang.ko/OAOAOO/OAOAOO.pdf",
  doi = "10.1145/2036918.2036921",
}
@techreport{RR-10-02,
  title = "Intellectual Property Protection using Obfuscation",
  author = "Stephen Drape",
  year = "2010",
  affiliation = "OUCL",
  month = "March",
  number = "RR-10-02",
  pages = "51",
}
@article{scala-jfp,
  title = "Scala for Generic Programmers",
  author = "Bruno C. d. S. Oliveira and Jeremy Gibbons",
  year = "2010",
  journal = "Journal of Functional Programming",
  note = "Revised version of the WGP2008 paper",
  number = "3,4",
  pages = "303-352",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/scalagp-jfp.pdf",
  volume = "20",
  doi = "10.1017/S0956796810000171",
}
@conference{mpc10,
  title = "Gradual Refinement: Blending Pattern Matching with Data Abstraction",
  author = "Meng Wang and Jeremy Gibbons and Kazutaka Matsuda and Zhenjiang Hu",
  year = "2010",
  booktitle = "Mathematics of Program Construction",
  editor = "Jules Desharnais",
  note = "See revised journal version "Refactoring Pattern Matching"",
  series = "LNCS",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/gradual.pdf",
  volume = "6120",
  doi = "10.1007/978-3-642-13321-3_22",
}
@conference{effective-advice,
  title = "EffectiveAdvice: Disciplined Advice with Explicit Effects",
  author = "Bruno C. d. S. Oliveira, Tom Schrijvers and William R. Cook",
  year = "2010",
  booktitle = "ACM SIG Proceedings of the 9th International Conference on Aspect-Oriented Software Development (AOSD)",
}
@conference{wgp09,
  title = "What Does Aspect-Oriented Programming Mean for Functional Programmers?",
  author = "Meng Wang and Bruno C. d. S. Oliveira",
  year = "2009",
  booktitle = "Proceedings of the ACM SIGPLAN Workshop on Generic Programming (WGP'09)",
  editor = "Patrik Jansson",
  location = "Edinburgh, Scotland, UK.",
  month = "August",
  publisher = "ACM",
}
@inproceedings{drapesas09,
  title = "Creating transformations for matrix obfuscation",
  author = "Stephen Drape and Irina Voiculescu",
  year = "2009",
  booktitle = "Proceedings of SAS 2009",
  institution = "The 16th International Static Analysis Symposium",
  location = "Los Angeles, CA",
  month = "August",
  doi = "10.1007/978-3-642-03237-0_19",
}
@inproceedings{Gibbons&Paterson2009:Parametric,
  title = "Parametric Datatype-Genericity",
  author = "Jeremy Gibbons and Ross Paterson",
  year = "2009",
  address = "Edinburgh",
  booktitle = "Workshop on Generic Programming",
  month = "August",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/parametric.pdf",
  doi = "10.1145/1596614.1596626",
}
@inproceedings{2847,
  title = "Modular Visitor Components: A Practical Solution to the Expression Families Problem",
  author = "Bruno C. d. S. Oliveira",
  year = "2009",
  booktitle = "23rd European Conference on Object Oriented Programming (ECOOP)",
  editor = "Sophia Drossopoulou",
  journal = "23rd European Conference on Object Oriented Programming (ECOOP)",
  location = "Genova, Italy",
  month = "July",
}
@article{comparing-jfp,
  title = "Comparing Datatype Generic Libraries in Haskell",
  author = "Alexey Rodriguez, Johan Jeuring, Patrik Jansson, Alex Gerdes, Oleg Kiselyov, Bruno C. d. S. Oliveira",
  year = "2009",
  journal = "Journal of Functional Programming",
  note = "Revised version of the Haskell Symposium 2008 paper",
}
@article{Gibbons&Oliveira2008:Essence,
  title = "The Essence of the Iterator Pattern",
  author = "Jeremy Gibbons and Bruno César dos Santos Oliveira",
  year = "2009",
  journal = "Journal of Functional Programming",
  note = "Revised version of \cite{Gibbons&Oliveira2006:Essence}",
  number = "3&4",
  pages = "377-402",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/iterator.pdf",
  volume = "19",
  doi = "10.1017/S0956796809007291",
}
@conference{bidi,
  title = "Translucent Abstraction: Safe Views through Invertible Programming (Extended version)",
  author = "Meng Wang and Jeremy Gibbons and Kazutaka Matsuda",
  year = "2009",
}
@misc{2965,
  title = "The Different Aspects of Monads and Mixins",
  author = "Bruno C. d. S. Oliveira",
  year = "2009",
  note = "Draft Paper. Last Update: 04/03/2009. Submitted to ICFP 2009.",
}
@inproceedings{Oliveira&Gibbons2008:Scala,
  title = "Scala for Generic Programmers",
  author = "Bruno Oliveira and Jeremy Gibbons",
  year = "2008",
  address = "Victoria, BC",
  booktitle = "Workshop on Generic Programming",
  editor = "Ralf Hinze",
  month = "Sep",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/scalagp.pdf",
  doi = "10.1145/1411318.1411323",
}
@inproceedings{Gibbons2008:Unfolding,
  title = "Unfolding Abstract Datatypes",
  author = "Jeremy Gibbons",
  year = "2008",
  booktitle = "Mathematics of Program Construction",
  month = "jul",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/adt.pdf",
  doi = "10.1007/978-3-540-70594-9_8",
}
@techreport{RR-08-12,
  title = "The Use of Matrices in Obfuscation",
  author = "Stephen Drape and Irina Voiculescu",
  year = "2008",
  institution = "Oxford University Computing Laboratory",
  month = "December",
  number = "RR-08-12",
}
@conference{comparing-hs,
  title = "Comparing Libraries for Generic Programming in Haskell",
  author = "Alexey Rodriguez, Johan Jeuring, Patrik Jansson, Alex Gerdes, Oleg Kiselyov, Bruno C. d. S. Oliveira",
  year = "2008",
  booktitle = "Haskell Symposium",
}
@inproceedings{DBLP:conf/mpc/Bird08,
  title = "Zippy Tabulations of Recursive Functions",
  author = "Richard S. Bird",
  year = "2008",
  booktitle = "Mathematics of Program Construction",
  editor = "Philippe Audebaud and Christine Paulin-Mohring",
  isbn = "978-3-540-70593-2",
  pages = "92-109",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "5133",
  doi = "10.1007/978-3-540-70594-9_7",
}
@inproceedings{Oliveira*2008:Visitor,
  title = "The Visitor Pattern as a Reusable, Generic, Type-Safe Component",
  author = "Bruno C. d. S. Oliveira and Meng Wang and Jeremy Gibbons",
  year = "2008",
  booktitle = "Object-Oriented Programming: Systems, Languages, Applications (OOPSLA)",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/visitor.pdf",
  doi = "10.1145/1449764.1449799",
}
@unpublished{objects-typeclasses-gadts,
  title = "Objects to Unify Type Classes and GADTs",
  author = "Bruno C. d. S. Oliveira and Martin Sulzmann",
  year = "2008",
}
@inproceedings{majumdar07metrics,
  title = "Metrics-based Evaluation of Slicing Obfuscations",
  author = "Anirban Majumdar and Stephen Drape and Clark Thomborson",
  year = "2007",
  booktitle = "Proceeding of the Third International Symposium on Information Assurance and Security",
  month = "August",
  pages = "472--477",
  publisher = "IEEE Computer Society",
  doi = "10.1109/IAS.2007.50",
}
@techreport{drape07tech1,
  title = "The Suitability of Different Binary Tree Obfuscations",
  author = "Stephen Drape",
  year = "2007",
  address = "Auckland, New Zealand",
  institution = "CDMTCS, The University of Auckland",
  month = "June",
  number = "310",
}
@techreport{drape07tech2,
  title = "Design and Evaluation of Slicing Obfuscations",
  author = "Stephen Drape and Anirban Majumdar",
  year = "2007",
  address = "Auckland, New Zealand",
  institution = "CDMTCS, The University of Auckland",
  month = "June",
  number = "311",
}
@unpublished{Gibbons2007:Commercial,
  title = "Report on Fourth Workshop on Commercial Users of Functional Programming",
  author = "Jeremy Gibbons",
  year = "2007",
  month = "December",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/cufp2007.pdf",
}
@article{drape07split,
  title = "Generalising the Array Split Obfuscation",
  author = "Stephen Drape",
  year = "2007",
  journal = "Information Sciences",
  month = "January",
  number = "1",
  pages = "202--219",
  publisher = "Elsevier",
  volume = "177",
  doi = "10.1016/j.ins.2006.03.012",
}
@article{HiL07Gen,
  title = "Generic Programming in 3D",
  author = "Hinze, Ralf and L{\"o}h, Andres",
  year = "2007",
  journal = "Science of Computer Programming",
  note = "to appear",
}
@article{BirdSadnicki2007:Online,
  title = "Minimal On-line List Labelling",
  author = "Richard S. Bird and Stefan Sadnicki",
  year = "2007",
  journal = "Information Processing Letters",
  number = "1",
  pages = "41-45",
  volume = "101",
}
@article{Gibbons2005:Metamorphisms,
  title = "Metamorphisms: Streaming Representation-Changers",
  author = "Jeremy Gibbons",
  year = "2007",
  journal = "Science of Computer Programming",
  number = "2",
  pages = "108-139",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/metamorphisms-scp.pdf",
  volume = "65",
  doi = "10.1016/j.scico.2006.01.006",
}
@inproceedings{drape07specifying,
  title = "Specifying Imperative Data Obfuscations",
  author = "Stephen Drape and Clark Thomborson and Anirban Majumdar",
  year = "2007",
  booktitle = "Proceeding of the 10th Information Security Conference (ISC 07)",
  issn = "0302-9743",
  pages = "299--314",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "4779",
  doi = "10.1007/978-3-540-75496-1_20",
}
@inproceedings{majumdar07slicing,
  title = "Slicing Obfuscations: Design, Correctness and Evaluation",
  author = "Anirban Majumdar and Stephen Drape and Clark Thomborson",
  year = "2007",
  booktitle = "DRM '07: Proceedings of the 2007 ACM workshop on Digital Rights Management",
  isbn = "978-1-59593-884-8",
  location = "Alexandria, Virginia, USA",
  pages = "70--81",
  publisher = "ACM Press",
  doi = "/10.1145/1314276.1314290",
}
@inproceedings{Gibbons*2007:Generic,
  title = "Generic and Indexed Programming",
  author = "Jeremy Gibbons and Meng Wang and Bruno Cesar dos Santos Oliveira",
  year = "2007",
  booktitle = "Trends in Functional Programming",
  editor = "Marco Morazan",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/gip.pdf",
}
@inproceedings{Gibbons2007:Datatype,
  title = "Datatype-Generic Programming",
  author = "Jeremy Gibbons",
  year = "2007",
  booktitle = "Spring School on Datatype-Generic Programming",
  editor = "Roland Backhouse and Jeremy Gibbons and Ralf Hinze and Johan Jeuring",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/dgp.pdf",
  volume = "4719",
}
@proceedings{Backhouse*2007:Datatype,
  title = "Spring School on Datatype-Generic Programming",
  author = "Roland Backhouse and Jeremy Gibbons and Ralf Hinze and Johan Jeuring",
  year = "2007",
  booktitle = "Spring School on Datatype-Generic Programming",
  editor = "Roland Backhouse and Jeremy Gibbons and Ralf Hinze and Johan Jeuring",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/ssdgp-preface.pdf",
  volume = "4719",
}
@proceedings{Davies&Gibbons2007:Integrated,
  title = "Integrated Formal Methods",
  author = "Jim Davies and Jeremy Gibbons",
  year = "2007",
  booktitle = "Integrated Formal Methods",
  editor = "Jim Davies and Jeremy Gibbons",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/ifm2007-preface.pdf",
  volume = "4591",
}
@phdthesis{oliveira07genericity,
  title = "Genericity, extensibility and type-safety in the Visitor pattern",
  author = "Bruno C. d. S. Oliveira",
  year = "2007",
  url = "http://www.comlab.ox.ac.uk/people/Bruno.Oliveira/Thesis.pdf",
}
@incollection{emgm,
  title = "Extensible and Modular Generics for the Masses",
  author = "Bruno C. d. S. Oliveira, Ralf Hinze and Andres Loeh",
  year = "2007",
  booktitle = "Trends in Functional Programming",
  editor = "Henrik Nilsson",
  note = "Best student paper award",
}
@incollection{HiL07Now,
  title = "Generic Programming, Now!",
  author = "Hinze, Ralf and L\"{o}h, Andres",
  year = "2007",
  affiliation = "Institut für Informatik III, Universität Bonn, Römerstraße 164, 53117 Bonn Germany",
  booktitle = "Datatype-Generic Programming",
  editor = "Backhouse, Roland and Gibbons, Jeremy and Hinze, Ralf and Jeuring, Johan",
  location = "Nottingham, UK",
  pages = "150-208",
  publisher = "Springer Berlin / Heidelberg",
  series = "Lecture Notes in Computer Science",
  volume = "4719",
  doi = "10.1007/978-3-540-76786-2\_3",
}
@incollection{HJL07Com,
  title = "Comparing Approaches to Generic Programming in {Haskell}",
  author = "Hinze, Ralf and Jeuring, Johan and L\"{o}h, Andres",
  year = "2007",
  affiliation = "Institut für Informatik III, Universität Bonn, Römerstraße 164, 53117 Bonn Germany",
  booktitle = "Datatype-Generic Programming",
  editor = "Backhouse, Roland and Gibbons, Jeremy and Hinze, Ralf and Jeuring, Johan",
  location = "Nottingham, UK",
  pages = "72-149",
  publisher = "Springer Berlin / Heidelberg",
  series = "Lecture Notes in Computer Science",
  volume = "4719",
  doi = "10.1007/978-3-540-76786-2\_2",
}
@inproceedings{Gibbons2006:Design,
  title = "Design Patterns as Higher-Order Datatype-Generic Programs",
  author = "Jeremy Gibbons",
  year = "2006",
  booktitle = "Workshop on Generic Programming",
  editor = "Ralf Hinze",
  month = "sep",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/hodgp.pdf",
}
@inproceedings{LoH06Ope,
  title = "Open data types and open functions",
  author = "L{\"o}h, Andres and Hinze, Ralf",
  year = "2006",
  address = "New York, NY, USA",
  booktitle = "Proceedings of the 8th ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP '06)",
  editor = "Maher, Michael",
  isbn = "1-59593-388-3",
  location = "Venice, Italy",
  month = "jul",
  pages = "133-144",
  publisher = "ACM",
  doi = "10.1145/1140335.1140352",
}
@inproceedings{HLo06Rev,
  title = "``{Scrap Your Boilerplate}'' Revolutions",
  author = "Hinze, Ralf and L\"{o}h, Andres",
  year = "2006",
  affiliation = "Institut für Informatik III, Universität Bonn, Römerstraße 164, 53117 Bonn, Germany",
  booktitle = "8th International Conference on Mathematics of Program Construction (MPC '06)",
  editor = "Uustalu, Tarmo",
  location = "Kuressaare, Estonia",
  month = "jul",
  pages = "180-208",
  publisher = "Springer Berlin / Heidelberg",
  series = "Lecture Notes in Computer Science",
  volume = "4014",
  doi = "10.1007/11783596\_13",
}
@article{Gibbons2006:Spigot,
  title = "An Unbounded Spigot Algorithm for the Digits of Pi",
  author = "Jeremy Gibbons",
  year = "2006",
  journal = "American Mathematical Monthly",
  month = "April",
  note = "Reprinted on p245-257 of "Pi: The Next Generation", ed David H. Bailey and Jonathan M. Borwein, Springer 2016, ISBN 978-3-319-32377-0",
  number = "4",
  pages = "318-328",
  url = "https://doi.org/10.2307/27641917",
  volume = "113",
  doi = "10.2307/27641917",
}
@inproceedings{HJL06Con,
  title = "Typed Contracts for Functional Programming",
  author = "Hinze, Ralf and Jeuring, Johan and L\"{o}h, Andres",
  year = "2006",
  affiliation = "Institut für Informatik III, Universität Bonn, Römerstraße 164, 53117 Bonn, Germany",
  booktitle = "Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006)",
  editor = "Hagiya, Masami and Wadler, Philip",
  location = "Fuji Susono, Japan",
  month = "apr",
  pages = "208-225",
  publisher = "Springer Berlin / Heidelberg",
  series = "Lecture Notes in Computer Science",
  volume = "3945",
  doi = "10.1007/11737414\_15",
}
@inproceedings{HLO06SYB,
  title = "``{Scrap Your Boilerplate}'' Reloaded",
  author = "Hinze, Ralf and L\"{o}h, Andres and Oliveira, Bruno C.d.S.",
  year = "2006",
  affiliation = "Institut für Informatik III, Universität Bonn, Römerstraße 164, 53117 Bonn, Germany",
  booktitle = "Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006)",
  editor = "Hagiya, Masami and Wadler, Philip",
  location = "Fuji Susono, Japan",
  month = "apr",
  pages = "13-29",
  publisher = "Springer Berlin / Heidelberg",
  series = "Lecture Notes in Computer Science",
  volume = "3945",
  doi = "10.1007/11737414\_3",
}
@techreport{HiL06Ope,
  title = "Open data types and open functions",
  author = "Hinze, Ralf and L{\"o}h, Andres",
  year = "2006",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "feb",
  number = "IAI-TR-2006-3",
}
@inproceedings{Danielsson*2006:Fast,
  title = "Fast and Loose Reasoning is Morally Correct",
  author = "Nils Anders Danielsson and Jeremy Gibbons and John Hughes and Patrik Jansson",
  year = "2006",
  booktitle = "Principles of Programming Languages",
  month = "jan",
  pages = "206-217",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/fast+loose.pdf",
  doi = "10.1145/1111037.1111056",
}
@techreport{HLO06SYBTR,
  title = "``{Scrap Your Boilerplate}'' Reloaded",
  author = "Hinze, Ralf and L{\"o}h, Andres and Oliveira, Bruno C.d.S.",
  year = "2006",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "jan",
  number = "IAI-TR-2006-2",
}
@article{BirdCurtis2006:Finding,
  title = "Finding Celebrities: A Lesson in Functional Programming",
  author = "Richard S. Bird and Sharon Curtis",
  year = "2006",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "13-20",
  volume = "16",
  doi = "10.1017/S0956796805005678",
}
@article{Gibbons*2006:Enumerating,
  title = "Enumerating the Rationals",
  author = "Jeremy Gibbons and David Lester and Richard Bird",
  year = "2006",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "281-292",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/rationals.pdf",
  volume = "16",
}
@article{Bird2006:Program,
  title = "A Program to Solve {S}udoku",
  author = "Richard S. Bird",
  year = "2006",
  journal = "Journal of Functional Programming",
  number = "6",
  pages = "671-679",
  volume = "16",
  doi = "10.1017/S0956796806006058",
}
@article{Gibbons*2006:Enumerating,
  title = "Enumerating the Rationals",
  author = "Jeremy Gibbons and David Lester and Richard Bird",
  year = "2006",
  journal = "Journal of Functional Programming",
  number = "4",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/rationals.pdf",
  volume = "16",
  doi = "10.1017/S0956796806005880",
}
@inproceedings{HLO06Gen,
  title = "Generics as a Library",
  author = "Oliveira, Bruno C. d. S. and Hinze, Ralf and L{\"o}h, Andres",
  year = "2006",
  booktitle = "Proceedings of the Seventh Symposium on Trends in Functional Programming (TFP '06)",
  editor = "Nilsson, Henrik",
  isbn = "ISBN 9781841501888",
  location = "Nottingham, UK",
  publisher = "Intellect",
  url = "http://www.intellectbooks.co.uk/books/view-Book,id=4576/",
}
@inproceedings{Bird2006:Loopless,
  title = "Loopless Functional Algorithms",
  author = "Richard S. Bird",
  year = "2006",
  booktitle = "Mathematics of Program Construction",
  editor = "Tarmo Uustalu",
  isbn = "3-540-35631-2",
  pages = "90-114",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "4014",
  doi = "10.1007/11783596_9",
}
@inproceedings{Bird2006:Improving,
  title = "Improving Saddleback Search: A Lesson in Algorithm Design",
  author = "Richard S. Bird",
  year = "2006",
  booktitle = "Mathematics of Program Construction",
  editor = "Tarmo Uustalu",
  isbn = "3-540-35631-2",
  pages = "82-89",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "4014",
  doi = "10.1007/11783596_8",
}
@inproceedings{DBLP:conf/icfp/Bird06,
  title = "Fifteen Years of Functional Pearls",
  author = "Richard S. Bird",
  year = "2006",
  booktitle = "International Conference on Functional Programming",
  editor = "John H. Reppy and Julia L. Lawall",
  isbn = "1-59593-309-3",
  pages = "215",
  doi = "10.1145/1159803.1159832",
}
@inproceedings{Gibbons&Oliveira2006:Essence,
  title = "The Essence of the Iterator Pattern",
  author = "Jeremy Gibbons and Bruno C\'esar dos Santos Oliveira",
  year = "2006",
  booktitle = "Mathematically-Structured Functional Programming",
  editor = "Conor McBride and Tarmo Uustalu",
  note = "Superseded by \cite{Gibbons&Oliveira2008:Essence}",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/iterator-msfp.pdf",
}
@inproceedings{Gibbons2006:Fission,
  title = "Fission for Program Comprehension",
  author = "Jeremy Gibbons",
  year = "2006",
  booktitle = "Mathematics of Program Construction",
  editor = "Tarmo Uustalu",
  pages = "162-179",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/fission.pdf",
  volume = "4014",
  doi = "10.1007/11783596_12",
}
@inproceedings{Gibbons2005:DesignECOOP,
  title = "Design Patterns as Higher-Order Datatype-Generic Programs",
  author = "Jeremy Gibbons",
  year = "2005",
  address = "Glasgow",
  booktitle = "European Conference on Object-Oriented Programming",
  month = "jul",
  note = "Later version appears as \cite{Gibbons2005:DesignOOPSLA}",
  url = "http://2005.ecoop.org/8.html",
}
@inproceedings{Gibbons2005:DesignOOPSLA,
  title = "Design Patterns as Higher-Order Datatype-Generic Programs",
  author = "Jeremy Gibbons",
  year = "2005",
  address = "San Diego",
  booktitle = "Object-Oriented Programming: Systems, Languages, Applications",
  month = "oct",
  note = "A revision of \cite{Gibbons2005:DesignECOOP}",
  url = "http://www.oopsla.org/2005/ShowEvent.do?id=121",
}
@article{BirdMu2005:Countdown,
  title = "Countdown: A Case Study in Origami Programming",
  author = "Richard S. Bird and Shin-Cheng Mu",
  year = "2005",
  journal = "Journal of Functional Programming",
  number = "5",
  pages = "679-702",
  volume = "15",
  doi = "10.1017/S0956796805005642",
}
@article{Gibbons&Hutton2005:Proof,
  title = "Proof Methods for Corecursive Programs",
  author = "Jeremy Gibbons and Graham Hutton",
  year = "2005",
  journal = "Fundamenta Informaticae",
  month = "April/May",
  number = "4",
  pages = "353-366",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/corecursive.pdf",
  volume = "66",
}
@inproceedings{Bird2005:Polymorphic,
  title = "Polymorphic String Matching",
  author = "Richard S. Bird",
  year = "2005",
  address = "New York, NY, USA",
  booktitle = "Haskell Workshop",
  isbn = "1-59593-071-X",
  location = "Tallinn, Estonia",
  pages = "110--115",
  publisher = "ACM Press",
  doi = "10.1145/1088348.1088359",
}
@inproceedings{Oliveira&Gibbons2005:TypeCase,
  title = "TypeCase: A Design Pattern for Type-Indexed Functions",
  author = "Bruno C\'esar dos Santos Oliveira and Jeremy Gibbons",
  year = "2005",
  booktitle = "Haskell Workshop",
  editor = "Daan Leijen",
  pages = "98-109",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/typecase.pdf",
  doi = "10.1145/1088348.1088358",
}
@inproceedings{Gibbons2004:Streaming,
  title = "Streaming Representation-Changers",
  author = "Jeremy Gibbons",
  year = "2004",
  booktitle = "Mathematics of Program Construction",
  editor = "Dexter Kozen",
  month = "jul",
  note = "\url{http://www.springerlink.com/index/LHQ73WU5GU686976}",
  pages = "142-168",
  series = "Lecture Notes in Computer Science",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/metamorphisms-mpc.pdf",
  volume = "3125",
  doi = "10.1007/978-3-540-27764-4_9",
}
@techreport{drape04tree,
  title = "Using Haskell to Model Tree Obfuscations",
  author = "Stephen Drape",
  year = "2004",
  institution = "Oxford University Computing Laboratory",
  month = "July",
  number = "RR-04-17",
}
@techreport{drape04matrix,
  title = "The Matrix Obfuscated",
  author = "Stephen Drape",
  year = "2004",
  institution = "Oxford University Computing Laboratory",
  month = "June",
  number = "RR-04-12",
}
@article{HJL03Typ,
  title = "Type-indexed data types",
  author = "Hinze, Ralf and Jeuring, Johan and L{\"o}h, Andres",
  year = "2004",
  journal = "Science of Computer Programming",
  month = "may",
  number = "1-2",
  pages = "117-151",
  volume = "51",
  doi = "10.1016/j.scico.2003.07.001",
}
@techreport{drape04set,
  title = "Obfuscating Set Representations",
  author = "Stephen Drape",
  year = "2004",
  institution = "Oxford University Computing Laboratory",
  month = "May",
  number = "RR-04-09",
}
@article{DBLP:journals/scp/MuB04,
  title = "Theory and Applications of Inverting Functions as Folds",
  author = "Shin-Cheng Mu and Richard S. Bird",
  year = "2004",
  journal = "Science of Computer Programming",
  number = "1-2",
  pages = "87-116",
  volume = "51",
  doi = "10.1016/j.scico.2003.09.003",
}
@article{DBLP:journals/jfp/Bird04,
  title = "On Tiling a Chessboard",
  author = "Richard S. Bird",
  year = "2004",
  journal = "Journal of Functional Programming",
  number = "6",
  pages = "613-622",
  volume = "14",
  doi = "10.1017/S095679680400512X",
}
@article{DBLP:journals/jfp/BirdM04,
  title = "Inverting the {B}urrows-{W}heeler Transform",
  author = "Richard S. Bird and Shin-Cheng Mu",
  year = "2004",
  journal = "Journal of Functional Programming",
  note = "Earlier version appeared at Haskell Workshop 2001",
  number = "6",
  pages = "603-612",
  url = "http://www.comlab.ox.ac.uk/people/richard.bird/online/BirdMu2004Inverting.pdf",
  volume = "14",
  doi = "10.1017/S0956796804005118",
}
@article{Martin*2004:Disciplined,
  title = "Disciplined, efficient, generalised folds for nested datatypes",
  author = "Clare Martin and Jeremy Gibbons and Ian Bayley",
  year = "2004",
  journal = "Formal Aspects of Computing",
  number = "1",
  pages = "19-35",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/efolds.pdf",
  volume = "16",
  doi = "10.1007/s00165-003-0013-6",
}
@phdthesis{drape04dphil,
  title = "Obfuscation of Abstract Data-Types",
  author = "Stephen Drape",
  year = "2004",
  school = "Oxford University Computing Laboratory",
}
@book{Gibbons&deMoor2003:Fun,
  title = "The Fun of Programming",
  author = "Jeremy Gibbons and Oege de Moor",
  year = "2003",
  booktitle = "The Fun of Programming",
  editor = "Jeremy Gibbons and Oege de Moor",
  isbn = "0-3339-9285-7",
  note = "Hardback ISBN: 1-4039-0772-2",
  publisher = "Palgrave",
  series = "Cornerstones in Computing",
}
@book{Backhouse&Gibbons2003:Summer,
  title = "Summer School on Generic Programming",
  author = "Roland Backhouse and Jeremy Gibbons",
  year = "2003",
  booktitle = "Summer School on Generic Programming",
  editor = "Roland Backhouse and Jeremy Gibbons",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/ssgp-toc.pdf",
  volume = "2793",
}
@inproceedings{BirdHinze2003:Trouble,
  title = "Trouble Shared is Trouble Halved",
  author = "Richard Bird and Ralf Hinze",
  year = "2003",
  address = "New York, NY, USA",
  booktitle = "Haskell Workshop",
  isbn = "1-58113-758-3",
  location = "Uppsala, Sweden",
  pages = "1--6",
  publisher = "ACM Press",
  doi = "10.1145/871895.871896",
}
@inproceedings{DBLP:conf/aplas/MuB03,
  title = "Rebuilding a Tree from Its Traversals: A Case Study of Program Inversion",
  author = "Shin-Cheng Mu and Richard S. Bird",
  year = "2003",
  booktitle = "Asian Symposium on Programming Languages and Systems",
  editor = "Atsushi Ohori",
  isbn = "3-540-20536-5",
  pages = "265-282",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  url = "http://www.comlab.ox.ac.uk/people/richard.bird/online/MuBird2003Rebuilding.pdf",
  volume = "2895",
}
@inproceedings{BirdGibbons2003:Arithmetic,
  title = "Arithmetic Coding with Folds and Unfolds",
  author = "Richard Bird and Jeremy Gibbons",
  year = "2003",
  booktitle = "Advanced Functional Programming 4",
  editor = "Johan Jeuring and Simon Peyton Jones",
  pages = "1-26",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/arith.pdf",
  volume = "2638",
}
@inproceedings{Gibbons2003:Patterns,
  title = "Patterns in Datatype-Generic Programming",
  author = "Jeremy Gibbons",
  year = "2003",
  booktitle = "Multiparadigm Programming",
  editor = "J{\"o}rg Striegnitz and Kei Davis",
  isbn = "3-00-016005-1",
  note = "First International Workshop on Declarative Programming in the Context of Object-Oriented Languages (DPCOOL)",
  pages = "277-289",
  publisher = "John von {N}eumann Institute for Computing (NIC)",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/patterns.pdf",
  volume = "27",
}
@inproceedings{Bird&Gibbons2003:Arithmetic,
  title = "Arithmetic Coding with Folds and Unfolds",
  author = "Richard Bird and Jeremy Gibbons",
  year = "2003",
  booktitle = "Advanced Functional Programming 4",
  editor = "Johan Jeuring and Peyton Jones, Simon",
  note = "Code available at \url{http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/arith.zip}",
  pages = "1-26",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/arith.pdf",
  volume = "2638",
  doi = "10.1007/978-3-540-44833-4_1",
}
@proceedings{Gibbons&Jeuring2003:Generic,
  title = "Generic Programming",
  author = "Jeremy Gibbons and Johan Jeuring",
  year = "2003",
  booktitle = "Generic Programming",
  editor = "Jeremy Gibbons and Johan Jeuring",
  isbn = "1-4020-7374-7",
  note = "Proceedings of the IFIP TC2 Working Conference on Generic Programming, Schlo\ss{} Dagstuhl, July 2002. ISBN 1-4020-7374-7.",
  publisher = "Kluwer Academic Publishers",
  url = "http://link.springer.com/content/pdf/10.1007%2F978-0-387-35672-3.pdf",
}
@techreport{ChH03Pha,
  title = "First-Class Phantom Types",
  author = "Cheney, James and Hinze, Ralf",
  year = "2003",
  institution = "Cornell University",
}
@incollection{Hin03Fun,
  title = "Fun with phantom types",
  author = "Hinze, Ralf",
  year = "2003",
  booktitle = "The Fun of Programming",
  editor = "Gibbons, Jeremy and {de Moor}, Oege",
  isbn = "ISBN 9781403907721 hardback, ISBN 9780333992852 paperback",
  pages = "245-262",
  publisher = "Palgrave Macmillan",
  series = "Cornerstones of Computing",
}
@misc{HiP02Typ,
  title = "Derivation of a Typed Functional {LR} Parser",
  author = "Hinze, Ralf and Paterson, Ross",
  year = "2003",
  note = "in preparation",
}
@incollection{Gibbons2003:Origami,
  title = "Origami Programming",
  author = "Jeremy Gibbons",
  year = "2003",
  booktitle = "The Fun of Programming",
  editor = "Jeremy Gibbons and Oege de Moor",
  isbn = "1-4039-0772-2",
  pages = "41-60",
  publisher = "Palgrave",
  series = "Cornerstones in Computing",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/origami.pdf",
}
@inproceedings{HJL02Typ,
  title = "Type-indexed Data Types",
  author = "Hinze, Ralf and Jeuring, Johan and L\"{o}h, Andres",
  year = "2002",
  affiliation = "Institut für Informatik III, Universität Bonn, Römerstraße 164, 53117 Bonn, Germany",
  booktitle = "Proceedings of the Sixth International Conference on Mathematics of Program Construction (MPC '02)",
  editor = "Boiten, Eerke A. and Möller, Bernhard",
  location = "Dagstuhl, Germany",
  month = "jul",
  pages = "148--174",
  publisher = "Springer Berlin / Heidelberg",
  series = "Lecture Notes in Computer Science",
  volume = "2386",
  doi = "10.1007/3-540-45442-X\_10",
}
@techreport{AcH02Com,
  title = "Combining Generics and Dynamics",
  author = "Achten, Peter and Hinze, Ralf",
  year = "2002",
  institution = "Nijmegen Institute for Computing and Information Sciences, University of Nijmegen",
  month = "jul",
  number = "NIII-R0206",
}
@inproceedings{Gibbons2002:Superposition,
  title = "Towards a Colimit-Based Semantics for Visual Programming",
  author = "Jeremy Gibbons",
  year = "2002",
  booktitle = "Coordination Models and Languages",
  month = "apr",
  pages = "166--173",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/superposition-extended.pdf",
  volume = "2315",
}
@techreport{Hin02Cona,
  title = "Constructing tournament representations: {An} exercise in pointwise relational programming",
  author = "Hinze, Ralf",
  year = "2002",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "feb",
  number = "IAI-TR-2002-2",
}
@techreport{Hin02Chu,
  title = "Church numerals, twice!",
  author = "Hinze, Ralf",
  year = "2002",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "feb",
  number = "IAI-TR-2002-3",
}
@book{Backhouse*2002:Algebraic,
  title = "Algebraic and Coalgebraic Methods in the Mathematics of Program Construction",
  author = "Roland Backhouse and Roy Crole and Jeremy Gibbons",
  year = "2002",
  booktitle = "Algebraic and Coalgebraic Methods in the Mathematics of Program Construction",
  editor = "Roland Backhouse and Roy Crole and Jeremy Gibbons",
  isbn = "3540436138",
  issn = "0302-9743",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/acmmpc-toc.pdf",
  volume = "2297",
}
@article{Hin02Pol,
  title = "Polytypic values possess polykinded types",
  author = "Hinze, Ralf",
  year = "2002",
  journal = "Science of Computer Programming",
  month = "May-June",
  number = "2-3",
  pages = "129-159",
  volume = "43",
  doi = "10.1016/S0167-6423(02)00025-4",
}
@inproceedings{drape02trans,
  title = "Transforming the .NET Intermediate Language Using Path Logic Programming",
  author = "Stephen Drape and Oege de Moor and Ganesh Sittampalam",
  year = "2002",
  booktitle = "Principles and Practice of Declarative Programming",
  pages = "133--144",
  publisher = "ACM Press",
}
@inproceedings{DBLP:conf/mpc/MuB02,
  title = "Inverting Functions as Folds",
  author = "Shin-Cheng Mu and Richard S. Bird",
  year = "2002",
  booktitle = "Mathematics of Program Construction",
  editor = "Eerke A. Boiten and Bernhard M{\"o}ller",
  isbn = "3-540-43857-2",
  pages = "209-232",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/MuBird2002Inverting.pdf",
  volume = "2386",
}
@techreport{HJL02Typa,
  title = "Type-indexed data types",
  author = "Hinze, Ralf and Jeuring, Johan and L{\"o}h, Andres",
  year = "2002",
  institution = "Universiteit Utrecht",
  number = "UU-CS-2002-11",
}
@incollection{Bird*2002:Optimization,
  title = "Algebraic Methods for Optimization Problems",
  author = "Richard Bird and Jeremy Gibbons and Shin Cheng Mu",
  year = "2002",
  booktitle = "Algebraic and Coalgebraic Methods in the Mathematics of Program Construction",
  editor = "Roland Backhouse and Roy Crole and Jeremy Gibbons",
  pages = "281--307",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/acmmpc-optimization.pdf",
  volume = "2297",
}
@incollection{Gibbons2002:Calculating,
  title = "Calculating Functional Programs",
  author = "Jeremy Gibbons",
  year = "2002",
  booktitle = "Algebraic and Coalgebraic Methods in the Mathematics of Program Construction",
  editor = "Roland Backhouse and Roy Crole and Jeremy Gibbons",
  issn = "0302-9743",
  pages = "148--203",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/acmmpc-calcfp.pdf",
  volume = "2297",
}
@incollection{Bird*2002:Optimization,
  title = "Algebraic Methods for Optimization Problems",
  author = "Richard Bird and Jeremy Gibbons and Shin Cheng Mu",
  year = "2002",
  booktitle = "Algebraic and Coalgebraic Methods in the Mathematics of Program Construction",
  editor = "Roland Backhouse and Roy Crole and Jeremy Gibbons",
  issn = "0302-9743",
  pages = "281--307",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/acmmpc-optimization.pdf",
  volume = "2297",
}
@article{Hin00Man,
  title = "Manufacturing datatypes",
  author = "Hinze, Ralf",
  year = "2001",
  journal = "JFP",
  month = "sep",
  number = "5",
  pages = "493-524",
  volume = "11",
  doi = "10.1017/S095679680100404X",
}
@article{Hutton&Gibbons00:Generic,
  title = "The Generic Approximation Lemma",
  author = "Graham Hutton and Jeremy Gibbons",
  year = "2001",
  journal = "Information Processing Letters",
  month = "aug",
  number = "4",
  pages = "197--201",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/approx.ps.gz",
  volume = "79",
  doi = "10.1016/S0020-0190(00)00220-9",
}
@inproceedings{HPJ00Pol,
  title = "Derivable Type Classes",
  author = "Hinze, Ralf and {Peyton Jones}, Simon",
  year = "2001",
  booktitle = "Proceedings of the 2000 ACM SIGPLAN Haskell Workshop",
  editor = "Hutton, Graham",
  location = "Montreal, Canada",
  month = "aug",
  note = "The preliminary proceedings appeared as a University of Nottingham technical report",
  pages = "5-35",
  publisher = "Elsevier Science",
  volume = "41(1) of Electronic Notes in Theoretical Computer Science",
  doi = "10.1016/S1571-0661(05)80542-0",
}
@article{Gibbons*2001:When,
  title = "When is a Function a Fold or an Unfold?",
  author = "Jeremy Gibbons and Graham Hutton and Thorsten Altenkirch",
  year = "2001",
  journal = "Electronic Notes in Theoretical Computer Science",
  month = "apr",
  note = "Proceedings of Coalgebraic Methods in Computer Science",
  number = "1",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/kernels.ps.gz",
  volume = "44",
  doi = "10.1016/S1571-0661(04)80906-X",
}
@techreport{Hin01PSQ,
  title = "A Simple Implementation Technique for Priority Search Queues",
  author = "Hinze, Ralf",
  year = "2001",
  institution = "Universiteit Utrecht",
  month = "mar",
  number = "UU-CS-2001-09",
}
@article{Martin&Gibbons2001:Semantics,
  title = "On the Semantics of Nested Datatypes",
  author = "Clare Martin and Jeremy Gibbons",
  year = "2001",
  journal = "Information Processing Letters",
  month = "dec",
  number = "5",
  pages = "233--238",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/semantics.ps.gz",
  volume = "80",
}
@inproceedings{MuBird2001:Functional,
  title = "Functional Quantum Programming",
  author = "Shin-Cheng Mu and Richard Bird",
  year = "2001",
  address = "KAIST, Dajeaon, Korea",
  booktitle = "Asian Workshop on Programming Languages and Systems",
  month = "dec",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/MuBird2001Functional.pdf",
}
@article{HiJ01Wea,
  title = "{Functional Pearl:} {W}eaving a web",
  author = "Hinze, Ralf and Jeuring, Johan",
  year = "2001",
  journal = "JFP",
  month = "nov",
  number = "6",
  pages = "681-689",
  volume = "11",
  doi = "10.1017/S0956796801004129",
}
@article{Hin01Pro,
  title = "{Prolog}'s Control Constructs in a Functional Setting --- {Axioms} and Implementation",
  author = "Hinze, Ralf",
  year = "2001",
  journal = "IJFCS",
  number = "2",
  pages = "125-170",
  volume = "12",
  doi = "10.1142/S0129054101000436",
}
@article{DBLP:journals/jfp/Bird01,
  title = "Unfolding Pointer Algorithms",
  author = "Richard S. Bird",
  year = "2001",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "347-358",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/Bird2001Unfolding.pdf",
  volume = "11",
  doi = "10.1017/S0956796801003914",
}
@article{DBLP:journals/jfp/Bird01a,
  title = "Maximum Marking Problems",
  author = "Richard S. Bird",
  year = "2001",
  journal = "Journal of Functional Programming",
  number = "4",
  pages = "411-424",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/Bird2001Maximum.pdf",
  volume = "11",
  doi = "10.1017/S0956796801004038",
}
@mastersthesis{drape01msc,
  title = "Functional Cryptography",
  author = "Stephen Drape",
  year = "2001",
}
@article{Hin00Per,
  title = "{Functional Pearl:} {Perfect} trees and bit-reversal permutations",
  author = "Hinze, Ralf",
  year = "2000",
  journal = "JFP",
  month = "may",
  number = "3",
  pages = "305-317",
  volume = "10",
  doi = "10.1017/S0956796800003701",
}
@inproceedings{deMoor&Gibbons00:Pointwise,
  title = "Pointwise Relational Programming",
  author = "Oege de Moor and Jeremy Gibbons",
  year = "2000",
  booktitle = "Algebraic Methodology and Software Technology",
  month = "may",
  pages = "371--390",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/pointwise.ps.gz",
  volume = "1816",
}
@article{Gibbons2000:Generic,
  title = "Generic Downwards Accumulations",
  author = "Jeremy Gibbons",
  year = "2000",
  journal = "Science of Computer Programming",
  pages = "37--65",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/genda.ps.gz",
  volume = "37",
}
@inproceedings{Bird*99:Program,
  title = "Program Optimisation, Naturally",
  author = "Richard Bird and Jeremy Gibbons and Geraint Jones",
  year = "2000",
  booktitle = "Millenial Perspectives in Computer Science",
  editor = "J. W. Davies and A. W. Roscoe and J. C. P. Woodcock",
  publisher = "Palgrave",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/naturally.ps.gz",
}
@inproceedings{MuBird2000:OnBuilding,
  title = "On Building Trees with Minimum Height, Relationally",
  author = "Shin-Cheng Mu and Richard Bird",
  year = "2000",
  booktitle = "First Asian Workshop on Programming Languages and Systems",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/MuBird2000OnBuilding.pdf",
}
@inproceedings{Bird*99:Program,
  title = "Program Optimisation, Naturally",
  author = "Richard Bird and Jeremy Gibbons and Geraint Jones",
  year = "2000",
  booktitle = "Millenial Perspectives in Computer Science",
  editor = "J. W. Davies and A. W. Roscoe and J. C. P. Woodcock",
  publisher = "Palgrave",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/naturally.ps.gz",
}
@article{Hin99PFDS,
  title = "{Book review:} {``Purely Functional Data Structures''}, by {Chris Okasaki}",
  author = "Hinze, Ralf",
  year = "1999",
  journal = "JFP",
  month = "sep",
  number = "5",
  pages = "577--578",
  volume = "9",
  doi = "doi: 10.1017/S0956796899009995",
}
@inproceedings{GHK99Str,
  title = "Straight to the Heart of Computer Science via Functional Programming",
  author = "Giegerich, Robert and Hinze, Ralf and Kurtz, Stefan",
  year = "1999",
  booktitle = "Proceedings of the Workshop on Functional and Declarative Programming in Education, {FDPE'99}, {Paris}, {France}",
  editor = "Felleisen, Matthias and Hanus, Michael and Thompson, Simon",
  location = "Paris, France",
  month = "sep",
  note = "The proceedings appeared as a technical report of Rice University, Rice COMP TR99-346",
  pages = "1--5",
}
@inproceedings{Hin99Manb,
  title = "Manufacturing Datatypes",
  author = "Hinze, Ralf",
  year = "1999",
  booktitle = "Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages (WAAAPL '99)",
  editor = "Okasaki, Chris",
  location = "Paris, France",
  month = "sep",
  note = "The proceedings appeared as a technical report of Columbia University, CUCS-023-99, also available from \verb|http://www.cs.columbia.edu/~cdo/waaapl.html|",
  pages = "1--16",
}
@inproceedings{Hin99Con,
  title = "Constructing Red-Black Trees",
  author = "Hinze, Ralf",
  year = "1999",
  booktitle = "Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages (WAAAPL' 99)",
  editor = "Okasaki, Chris",
  location = "Paris, France",
  month = "sep",
  note = "The proceedings appeared as a technical report of Columbia University, CUCS-023-99",
  pages = "89--99",
}
@inproceedings{Hin99Has,
  title = "A Generic Programming Extension for {Haskell}",
  author = "Hinze, Ralf",
  year = "1999",
  booktitle = "Proceedings of the 3rd {Haskell} Workshop, {Paris}, {France}",
  editor = "Meijer, Erik",
  location = "Paris, France",
  month = "sep",
  note = "The proceedings appeared as a technical report of Universiteit Utrecht, UU-CS-1999-28",
}
@techreport{Hin99New,
  title = "A New Approach to Generic Functional Programming",
  author = "Hinze, Ralf",
  year = "1999",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "jul",
  number = "IAI-TR-99-9",
}
@techreport{Hin99Eff,
  title = "Efficient Generalized Folds",
  author = "Hinze, Ralf",
  year = "1999",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "jun",
  number = "IAI-TR-99-8",
}
@techreport{Hin99RBT,
  title = "Constructing Red-Black Trees",
  author = "Hinze, Ralf",
  year = "1999",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "may",
  number = "IAI-TR-99-6",
}
@techreport{Hin99Man,
  title = "Manufacturing Datatypes",
  author = "Hinze, Ralf",
  year = "1999",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "apr",
  number = "IAI-TR-99-5",
}
@techreport{Hin99Per,
  title = "Perfect Trees and Bit-reversal Permutations",
  author = "Hinze, Ralf",
  year = "1999",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "mar",
  number = "IAI-TR-99-4",
}
@unpublished{Gibbons99:Lecture,
  title = "Lecture Notes on Algebraic and Coalgebraic Methods for Calculating Functional Programs",
  author = "Jeremy Gibbons",
  year = "1999",
  annote = "Functional programs are merely equations; they may be calculated by straightforward equational reasoning. Many useful theorems for such reasoning derive from an \emph{algebraic} view of programs, built around datatypes and their operations. Traditional algebraic methods concentrate on initial algebras, constructors, and values; dual, co-algebraic, methods concentrate on final co-algebras, destructors, and processes. Both methods are elegant and powerful; they deserve to be combined.",
  month = "mar",
  note = "Estonian Winter School on Computer Science",
}
@techreport{Hin99Eas,
  title = "Polytypic Programming With Ease",
  author = "Hinze, Ralf",
  year = "1999",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "feb",
  number = "IAI-TR-99-2",
}
@misc{PJH99Report,
  title = "{Haskell}~98 --- {A} Non-strict, Purely Functional Language",
  author = "{Peyton Jones} [editor] and Simon and Hughes [editor], John and Augustsson, Lennart and Barton, Dave and Boutel, Brian and Burton, Warren and Fraser, Simon and Fasel, Joseph and Hammond, Kevin and Hinze, Ralf and Hudak, Paul and Johnsson, Thomas and Jones, Mark and Launchbury, John and Meijer, Erik and Peterson, John and Reid, Alastair and Runciman, Colin and Wadler, Philip",
  year = "1999",
  editor = "{Peyton Jones}, Simon and Hughes, John",
  howpublished = "Available from \texttt{http://www.haskell.org/definition/}",
  month = "feb",
}
@techreport{Hin99Polc,
  title = "Polytypic values possess polykinded types",
  author = "Hinze, Ralf",
  year = "1999",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "dec",
  number = "IAI-TR-99-15",
}
@article{Hin99Bin,
  title = "{Functional Pearl:} {Explaining} binomial heaps",
  author = "Hinze, Ralf",
  year = "1999",
  journal = "JFP",
  month = "jan",
  number = "1",
  pages = "93-104",
  volume = "9",
  doi = "10.1017/S0956796899003317",
}
@techreport{Hin99Der,
  title = "Deriving monad transformers",
  author = "Hinze, Ralf",
  year = "1999",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "jan",
  number = "IAI-TR-99-1",
}
@article{BirdPaterson99:deBruijn,
  title = "de~{B}ruijn Notation as a Nested Datatype",
  author = "Richard S. Bird and Ross Paterson",
  year = "1999",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "77--91",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdPaterson99DeBruijn.pdf",
  volume = "9",
  doi = "10.1017/S0956796899003366",
}
@article{BirdPaterson99:Generalised,
  title = "Generalised Folds for Nested Datatypes",
  author = "Richard Bird and Ross Paterson",
  year = "1999",
  journal = "Formal Aspects of Computing",
  pages = "200--222",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdPaterson99Generalised.pdf",
  volume = "11",
}
@article{deMoor&Gibbons99:Bridging,
  title = "Bridging the Algorithm Gap: A Linear-Time Functional Program for Paragraph Formatting",
  author = "Oege de Moor and Jeremy Gibbons",
  year = "1999",
  journal = "Science of Computer Programming",
  number = "1",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/bridging.ps.gz",
  volume = "35",
}
@article{Gibbons99:Pointless,
  title = "A Pointless Derivation of Radixsort",
  author = "Jeremy Gibbons",
  year = "1999",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "339--346",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/radix.ps.gz",
  volume = "9",
}
@inproceedings{Gibbons&Hutton99:Proof,
  title = "Proof Methods for Structured Corecursive Programs",
  author = "Jeremy Gibbons and Graham Hutton",
  year = "1999",
  booktitle = "Proceedings of 1st Scottish Workshop on Functional Programming",
}
@inproceedings{Gibbons&Jones98:Underappreciated,
  title = "The Under-Appreciated Unfold",
  author = "Jeremy Gibbons and Geraint Jones",
  year = "1998",
  address = "Baltimore, Maryland",
  booktitle = "International Conference on Functional Programming",
  month = "sep",
  pages = "273--279",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/unfold.ps.gz",
}
@inproceedings{BirdMeertens98:Nested,
  title = "Nested Datatypes",
  author = "Richard S. Bird and Lambert Meertens",
  year = "1998",
  address = "Marstrand, Sweden",
  booktitle = "LNCS~1422: Proceedings of Mathematics of Program Construction",
  editor = "Johan Jeuring",
  month = "jun",
  pages = "52--67",
  publisher = "Springer-Verlag",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdMeertens98Nested.pdf",
}
@inproceedings{Gibbons98:Polytypic,
  title = "Polytypic Downwards Accumulations",
  author = "Jeremy Gibbons",
  year = "1998",
  address = "Marstrand, Sweden",
  booktitle = "Proceedings of Mathematics of Program Construction",
  editor = "Johan Jeuring",
  month = "jun",
  pages = "207-233",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/polyda.ps.gz",
  volume = "1422",
}
@article{Gibbons98:Structured,
  title = "Structured Programming in Java",
  author = "Jeremy Gibbons",
  year = "1998",
  journal = "SIGPLAN Notices",
  month = "apr",
  note = "Also in Fintan Culwin, editor, \emph{Proceedings of the Second Conference on Java in the Computing Curriculum}, South Bank University, London",
  number = "4",
  pages = "40--43",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/spjava.ps.gz",
  volume = "33",
}
@inproceedings{Hin98Pro,
  title = "Prological Features in a Functional Setting --- Axioms and Implementations",
  author = "Hinze, Ralf",
  year = "1998",
  address = "Singapore, New Jersey, London, Hong Kong",
  booktitle = "Proceedings of the Third Fuji International Symposium on Functional and Logic Programming (FLOPS '98)",
  editor = "Sato, Masahiko and Toyama, Yoshihito",
  isbn = "ISBN 981-02-3384-1",
  location = "Kyoto, Japan",
  month = "apr",
  pages = "98--122",
  publisher = "World Scientific",
}
@techreport{Hin98Num,
  title = "Numerical Representations as Higher-Order Nested Datatypes",
  author = "Hinze, Ralf",
  year = "1998",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "dec",
  number = "IAI-TR-98-12",
}
@techreport{Hin98Gen,
  title = "Generalizing Generalized Tries",
  author = "Hinze, Ralf",
  year = "1998",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "nov",
  number = "IAI-TR-98-11",
}
@techreport{Hin98Pol,
  title = "Polytypic Functions Over Nested Datatypes",
  author = "Hinze, Ralf",
  year = "1998",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "oct",
  number = "IAI-TR-98-10",
}
@book{Bird98:Introduction,
  title = "Introduction to Functional Programming Using {H}askell",
  author = "Richard S. Bird",
  year = "1998",
  isbn = "0134843460",
  publisher = "Prentice-Hall",
  url = "http://www.cs.ox.ac.uk/publications/books/functional/",
}
@article{DBLP:journals/jfp/Bird98,
  title = "Meertens' Number",
  author = "Richard S. Bird",
  year = "1998",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "83-88",
  volume = "8",
  doi = "10.1017/S0956796897002931",
}
@incollection{Hin98Str,
  title = "Projektionsbasierte {S}triktheitsanalyse",
  author = "Hinze, Ralf",
  year = "1998",
  address = "Stuttgart",
  booktitle = "Ausgezeichnete Informatikdissertationen 1996",
  isbn = "3-519-02646-5",
  pages = "46-61",
  publisher = "B.G.~Teubner",
}
@unpublished{Gibbons&Jones98:Against,
  title = "Against the Grain: Linear-Time Breadth-First Tree Algorithms",
  author = "Jeremy Gibbons and Geraint Jones",
  year = "1998",
  note = "Oxford Brookes University and Oxford University Computing Laboratory",
}
@inproceedings{Bird97:Allegories,
  title = "Allegories as a Basis for Algorithmics",
  author = "Richard S. Bird",
  year = "1997",
  booktitle = "LNCS~1290: Category Theory and Computer Science",
  editor = "Eugenio Moggi and Guiseppe Rosolini",
  month = "sep",
  pages = "34--46",
  publisher = "Springer-Verlag",
  doi = "10.1007/BFb0026979",
}
@inproceedings{Gibbons97:Calculating,
  title = "Calculating Functional Programs",
  author = "Jeremy Gibbons",
  year = "1997",
  booktitle = "Proceedings of ISRG/SERG Research Colloquium",
  editor = "Keiichi Nakata",
  month = "nov",
  note = "Technical Report CMS-TR-98-01",
  organization = "School of Computing and Mathematical Sciences, Oxford Brookes University",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/calculating.ps.gz",
}
@techreport{Gibbons97:More,
  title = "More on Merging and Selection",
  author = "Jeremy Gibbons",
  year = "1997",
  institution = "School of Computing and Mathematical Sciences, Oxford Brookes University",
  month = "oct",
  number = "CMS-TR-97-08",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/merging.ps.gz",
}
@techreport{Gibbons97:Conditionals,
  title = "Conditionals in Distributive Categories",
  author = "Jeremy Gibbons",
  year = "1997",
  institution = "School of Computing and Mathematical Sciences, Oxford Brookes University",
  month = "jan",
  number = "CMS-TR-97-01",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/conditionals.ps.gz",
}
@article{Bird97:OnMerging,
  title = "On Merging and Selection",
  author = "Richard S. Bird",
  year = "1997",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "349--354",
  volume = "7",
  doi = "10.1017/S0956796897002736",
}
@article{Bird97:OnBuilding,
  title = "On Building Trees with Minimum Height",
  author = "Richard S. Bird",
  year = "1997",
  journal = "Journal of Functional Programming",
  number = "4",
  pages = "441--445",
  volume = "7",
  doi = "10.1017/S0956796897002803",
}
@article{Bird*97:More,
  title = "More Haste, Less Speed: Lazy Versus Eager Evaluation",
  author = "Richard S. Bird and Geraint Jones and Oege de Moor",
  year = "1997",
  journal = "Journal of Functional Programming",
  number = "5",
  pages = "541--547",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdJonesDeMoor1997More.pdf",
  volume = "7",
  doi = "10.1017/S0956796897002827",
}
@article{BirdRavelo97:On,
  title = "On Computing Representatives",
  author = "Richard S. Bird and Jes{\'u}s N. Ravelo",
  year = "1997",
  journal = "Information Processing Letters",
  pages = "1--7",
  volume = "63",
  doi = "10.1016/S0020-0190(97)00087-2",
}
@proceedings{DBLP:conf/alc/1997,
  title = "IFIP TC2 WG2.1 International Workshop on Algorithmic Languages and Calculi",
  year = "1997",
  editor = "Richard S. Bird and Lambert G. L. T. Meertens",
  isbn = "0-412-82050-1",
  publisher = "Chapman {\&} Hall",
  series = "IFIP Conference Proceedings",
  volume = "95",
}
@techreport{Hin96Eff,
  title = "Efficient Monadic-style Backtracking",
  author = "Hinze, Ralf",
  year = "1996",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "oct",
  number = "IAI-TR-96-9",
}
@inproceedings{Gibbons&Wansbrough96:Tracing,
  title = "Tracing Lazy Functional Languages",
  author = "Jeremy Gibbons and Keith Wansbrough",
  year = "1996",
  address = "Melbourne",
  booktitle = "Computing: The Australasian Theory Seminar",
  editor = "Michael E. Houle and Peter Eades",
  month = "jan",
  pages = "11--20",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/tracing.ps.gz",
}
@book{BirddeMoor96:Algebra,
  title = "The Algebra of Programming",
  author = "Richard Bird and Oege de Moor",
  year = "1996",
  isbn = "013507245X",
  publisher = "Prentice-Hall",
  url = "http://www.cs.ox.ac.uk/publications/books/algebra/",
}
@article{Bird96:Functional,
  title = "Functional Algorithm Design",
  author = "Richard S. Bird",
  year = "1996",
  address = "Amsterdam, The Netherlands, The Netherlands",
  issn = "0167-6423",
  journal = "Science of Computer Programming",
  number = "1-3",
  pages = "15--31",
  publisher = "Elsevier North-Holland, Inc.",
  volume = "26",
  doi = "10.1016/0167-6423(95)00033-X",
}
@article{Bird*96:Generic,
  title = "Generic Functional Programming with Types and Relations",
  author = "Richard Bird and Oege de Moor and Paul Hoogendijk",
  year = "1996",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "1--28",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdHoogendijkDeMoor1996Generic.pdf",
  volume = "6",
}
@article{Gibbons96:Computing,
  title = "Computing Downwards Accumulations on Trees Quickly",
  author = "Jeremy Gibbons",
  year = "1996",
  journal = "Theoretical Computer Science",
  note = "Earlier version appeared in Proceedings of the 16th Australian Computer Science Conference, Brisbane, 1993",
  number = "1",
  pages = "67--80",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/quickly.ps.gz",
  volume = "169",
}
@article{Gibbons96:Third,
  title = "The Third Homomorphism Theorem",
  author = "Jeremy Gibbons",
  year = "1996",
  journal = "Journal of Functional Programming",
  note = "Earlier version appeared in C.\,B.\,Jay, editor, {\it Computing: The Australian Theory Seminar}, Sydney, December~1994, p.\,62--69",
  number = "4",
  pages = "657--665",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/thirdht.ps.gz",
  volume = "6",
}
@article{Gibbons96:Deriving,
  title = "Deriving Tidy Drawings of Trees",
  author = "Jeremy Gibbons",
  year = "1996",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "535--562",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/drawing.ps.gz",
  volume = "6",
}
@phdthesis{Hin95Pro,
  title = "Projection-based Strictness Analysis --- Theoretical and Practical Aspects",
  author = "Hinze, Ralf",
  year = "1995",
  month = "nov",
  school = "Universit\"{a}t Bonn",
}
@inproceedings{DBLP:conf/mpc/Bird95,
  title = "Functional Algorithm Design",
  author = "Richard S. Bird",
  year = "1995",
  booktitle = "Mathematics of Program Construction",
  isbn = "3-540-60117-1",
  pages = "2-17",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "947",
  doi = "10.1007/3-540-60117-1_2",
}
@inproceedings{Gibbons95:Initial,
  title = "An Initial-Algebra Approach to Directed Acyclic Graphs",
  author = "Jeremy Gibbons",
  year = "1995",
  booktitle = "Mathematics of Program Construction",
  editor = "Bernhard M{\"o}ller",
  pages = "282--303",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/damgs.ps.gz",
  volume = "947",
}
@inproceedings{Gibbons94:Introduction,
  title = "An Introduction to the Bird-Meertens Formalism",
  author = "Jeremy Gibbons",
  year = "1994",
  address = "Hamilton",
  booktitle = "Proceedings of the First New Zealand Formal Program Development Colloquium",
  editor = "Steve Reeves",
  month = "nov",
  pages = "1--12",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/nzfpdc-squiggol.ps.gz",
}
@book{CGH94Ded,
  title = "Deduktive Datenbanken --- Eine Einführung aus der Sicht der logischen Programmierung",
  author = "Cremers, Armin B. and Griefahn, Ulrike and Hinze, Ralf",
  year = "1994",
  address = "Braunschweig/Wiesbaden",
  booktitle = "Deduktive Datenbanken --- Eine Einführung aus der Sicht der logischen Programmierung",
  isbn = "3-528-04700-3",
  publisher = "Vieweg",
  series = "K{\"u}nstliche Intelligenz",
}
@article{Gibbons*94:Efficient,
  title = "Efficient Parallel Algorithms for Tree Accumulations",
  author = "Jeremy Gibbons and Wentong Cai and David Skillicorn",
  year = "1994",
  journal = "Science of Computer Programming",
  pages = "1--18",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/efficient.ps.gz",
  volume = "23",
}
@inproceedings{Gibbons94:How,
  title = "How to Derive Tidy Drawings of Trees",
  author = "Jeremy Gibbons",
  year = "1994",
  address = "Department of Computer Science, University of Auckland",
  annote = "Condensed version of \cite{Gibbons93:Deriving}",
  booktitle = "Proceedings of Salodays in Auckland",
  editor = "C. Calude and M. J. J. Lennon and H. Maurer",
  note = "Also in Proceedings of First New Zealand Formal Program Development Colloquium, p.\,105--126.",
  pages = "53--73",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/nzfpdc-drawing.ps.gz",
}
@incollection{aop-marktoberdorf,
  title = "The Algebra of Programming",
  author = "Richard Bird and Oege de Moor",
  year = "1994",
  booktitle = "Proceedings of the NATO Advanced Study Institute on Deductive Program Design",
  editor = "Manfred Broy",
  isbn = "3-540-60947-4",
  pages = "167-203",
  publisher = "Springer-Verlag",
  series = "NATO ASI series F",
  url = "http://dl.acm.org/citation.cfm?id=256116",
}
@incollection{BirddeMoor93:Relational,
  title = "Relational Program Derivation and Context-Free Language Recognition",
  author = "Richard Bird and Oege de Moor",
  year = "1994",
  booktitle = "A Classical Mind: Essays in Honour of {C}.~{A}.~{R}.~{H}oare",
  chapter = "2",
  editor = "A. W. Roscoe",
  publisher = "Prentice-Hall",
}
@unpublished{BirddeMoor94:Hybrid,
  title = "Hybrid Dynamic Programming",
  author = "Richard Bird and Oege de Moor",
  year = "1994",
  note = "Programming Research Group, Oxford",
}
@techreport{Jones&Gibbons93:Linear,
  title = "Linear-time Breadth-first Tree Algorithms: An Exercise in the Arithmetic of Folds and Zips",
  author = "Geraint Jones and Jeremy Gibbons",
  year = "1993",
  institution = "Dept of Computer Science, University of Auckland",
  month = "may",
  note = "Also IFIP Working Group 2.1 working paper 705~WIN-2",
  number = "No.\,71",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/linear.ps.gz",
}
@inproceedings{Gibbons93:Computing,
  title = "Computing Downwards Accumulations on Trees Quickly",
  author = "Jeremy Gibbons",
  year = "1993",
  address = "Brisbane",
  booktitle = "16th Australian Computer Science Conference",
  editor = "Gopal Gupta and George Mohay and Rodney Topor",
  month = "feb",
  pages = "685--691",
}
@article{Bird93:Last,
  title = "The Last Tail",
  author = "R. S. Bird",
  year = "1993",
  journal = "Journal of Functional Programming",
  number = "1",
  pages = "117--122",
  volume = "3",
}
@article{BirddeMoor93:List,
  title = "List Partitions",
  author = "Richard S. Bird and Oege de Moor",
  year = "1993",
  journal = "Formal Aspects of Computing",
  pages = "61--78",
  volume = "5",
  doi = "10.1007/BF01211316",
}
@inproceedings{BirddeMoor93:Solving,
  title = "Solving Optimisation Problems with Catamorphisms",
  author = "Richard S. Bird and Oege de Moor",
  year = "1993",
  booktitle = "Mathematics of Program Construction",
  pages = "45--66",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdDeMoor93Solving.pdf",
  volume = "669",
  doi = "10.1007/3-540-56625-2_7",
}
@inproceedings{BirddeMoor93:From,
  title = "From Dynamic Programming to Greedy Algorithms",
  author = "Richard S. Bird and Oege de Moor",
  year = "1993",
  booktitle = "IFIP TC2/WG2.1 State-of-the-Art Report on Formal Program Development",
  editor = "Bernhard M{\"o}ller and Helmut Partsch and Steve Schumann",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/richard.bird/online/BirdDeMoor93From.pdf",
  volume = "755",
  doi = "10.1007/3-540-57499-9_16",
}
@inproceedings{Gibbons93:Upwards,
  title = "Upwards and Downwards Accumulations on Trees",
  author = "Jeremy Gibbons",
  year = "1993",
  booktitle = "Mathematics of Program Construction",
  editor = "R.~S. Bird and C.~C. Morgan and J.~C.~P. Woodcock",
  note = "A revised version appears in the Proceedings of the Massey Functional Programming Workshop, 1992",
  pages = "122--138",
  publisher = "Springer-Verlag",
  series = "Lecture Notes in Computer Science",
  url = "http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/accumulations.ps.gz",
  volume = "669",
}
@proceedings{DBLP:conf/mpc/1992,
  title = "Mathematics of Program Construction",
  year = "1993",
  editor = "Richard S. Bird and Carroll Morgan and Jim Woodcock",
  isbn = "3-540-56625-2",
  publisher = "Springer",
  series = "Lecture Notes in Computer Science",
  volume = "669",
  doi = "10.1007/3-540-56625-2",
}
@incollection{CEH93Rol,
  title = "Die Rolle der mathematischen Logik in der K{\"u}nstlichen Intelligenz",
  author = "Cremers, Armin B. and Eder, Elmar and Hinze, Ralf",
  year = "1993",
  booktitle = "K{\"u}nstliche Intelligenz: Leitvorstellungen und Verantwortbarkeit, Band 1: Diskussionsgrundlage",
  publisher = "Verein Deutscher Ingenieure",
}
@techreport{Hin92Cat,
  title = "The Categorical Abstract Machine: Basics and Enhancments",
  author = "Hinze, Ralf",
  year = "1992",
  institution = "Institut f{\"u}r Informatik III, Universit{\"a}t Bonn",
  month = "dec",
  number = "IAI-TR-92-1",
}
@book{Hin92Fun,
  title = "Einführung in die funktionale Programmierung mit Miranda",
  author = "Hinze, Ralf",
  year = "1992",
  address = "Stuttgart",
  booktitle = "Einführung in die funktionale Programmierung mit Miranda",
  isbn = "3-519-02287-7",
  publisher = "B.G.~Teubner",
}
@article{Bird92:Smallest,
  title = "The Smallest Upravel",
  author = "Richard S. Bird",
  year = "1992",
  journal = "Science of Computer Programming",
  pages = "281--292",
  volume = "18",
  doi = "10.1016/0167-6423(92)90020-C",
}
@article{Bird92:Unravelling,
  title = "Unravelling Greedy Algorithms",
  author = "Richard S. Bird",
  year = "1992",
  journal = "Journal of Functional Programming",
  number = "3",
  pages = "375--385",
  volume = "2",
}
@article{Bird92:Two,
  title = "Two Greedy Algorithms",
  author = "Richard S. Bird",
  year = "1992",
  journal = "Journal of Functional Programming",
  number = "2",
  pages = "237--244",
  volume = "2",
}
@unpublished{Hin92b,
  title = "Einf{\"u}hrung in die funktionale Programmierung - Sprachen, Spezifikationen, Grundlagen, Implementierung",
  author = "Hinze, R.",
  year = "1992",
  note = "Vorlesungsskript SS 92, Universit{\"a}t Bonn, Institut f{\"u}r Informatik III",
}
@article{Bird91:Minout,
  title = "The {Minout} Problem",
  author = "Richard S. Bird",
  year = "1991",
  journal = "Journal of Functional Programming",
  month = "jan",
  number = "1",
  pages = "121--124",
  volume = "1",
}
@article{DBLP:journals/jfp/Bird91a,
  title = "On Removing Duplicates",
  author = "Richard S. Bird",
  year = "1991",
  journal = "Journal of Functional Programming",
  number = "2",
  pages = "235-243",
  volume = "1",
}
@inproceedings{Bird91:Knuths,
  title = "Knuth's Problem",
  author = "Richard S. Bird",
  year = "1991",
  booktitle = "IFIP TC2/WG2.1 Working Conference on Constructing Programs from Specifications",
  editor = "B. M{\"o}ller",
  pages = "1--8",
  publisher = "North-Holland",
}
@phdthesis{Gibbons91:Algebras,
  title = "Algebras for Tree Algorithms",
  author = "Jeremy Gibbons",
  year = "1991",
  note = "Available as Technical Monograph PRG-94. ISBN 0-902928-72-4",
  school = "Programming Research Group, Oxford University",
  url = "http://www.cs.ox.ac.uk/files/3422/PRG94.pdf",
}
@incollection{Bird90:Small,
  title = "Small Specification Exercises",
  author = "Richard S. Bird",
  year = "1990",
  booktitle = "Beauty is our Business",
  editor = "W. H. J. Feijen and A. J. M. van Gasteren and D. Gries and J. Misra",
  pages = "36--43",
  publisher = "Springer-Verlag",
}
@incollection{Bird90:Calculus,
  title = "A Calculus of Functions for Program Derivation",
  author = "Richard S. Bird",
  year = "1990",
  booktitle = "Research Topics in Functional Programming",
  editor = "David A. Turner",
  note = "Also available as Technical Monograph PRG-64, from the Programming Research Group, Oxford University",
  organization = "University of Texas at Austin",
  publisher = "Addison-Wesley",
}
@article{Bird*89:KMP,
  title = "Formal Derivation of a Pattern Matching Algorithm",
  author = "Richard S. Bird and Jeremy Gibbons and Geraint Jones",
  year = "1989",
  journal = "Science of Computer Programming",
  month = "jul",
  number = "2",
  pages = "93--104",
  volume = "12",
  doi = "10.1016/0167-6423(89)90036-1",
}
@article{Bird*89:KMP,
  title = "Formal Derivation of a Pattern Matching Algorithm",
  author = "Richard S. Bird and Jeremy Gibbons and Geraint Jones",
  year = "1989",
  journal = "Science of Computer Programming",
  month = "jul",
  number = "2",
  pages = "93--104",
  url = "http://dx.doi.org/10.1016/0167-6423(89)90036-1",
  volume = "12",
}
@article{Bird89:Algebraic,
  title = "Algebraic Identities for Program Calculation",
  author = "Richard S. Bird",
  year = "1989",
  journal = "Computer Journal",
  month = "apr",
  number = "2",
  pages = "122--126",
  volume = "32",
  doi = "10.1093/comjnl/32.2.122",
}
@book{BirdWadler88:Introduction,
  title = "An Introduction to Functional Programming",
  author = "Richard S. Bird and Philip L. Wadler",
  year = "1988",
  isbn = "0-13-484189-1",
  publisher = "Prentice-Hall",
}
@inproceedings{Bird88:Constructive,
  title = "Lectures on Constructive Functional Programming",
  author = "Richard S. Bird",
  year = "1988",
  booktitle = "Constructive Methods in Computer Science",
  editor = "Manfred Broy",
  note = "NATO ASI Series~F Volume~55. Also available as Technical Monograph PRG-69, from the Programming Research Group, Oxford University",
  pages = "151--218",
  publisher = "Springer-Verlag",
}
@mastersthesis{Gibbons88:View,
  title = "A New View of Binary Trees",
  author = "Jeremy Gibbons",
  year = "1988",
  note = "Abstract appears in the Bulletin of the EATCS, number~39, p.~214.",
  school = "Programming Research Group, Oxford University",
}
@article{BirdHughes87:Alpha-Beta,
  title = "The Alpha-Beta Algorithm: {An} Exercise in Program Transformation",
  author = "Richard S. Bird and John Hughes",
  year = "1987",
  journal = "Information Processing Letters",
  month = "jan",
  number = "1",
  pages = "53--57",
  volume = "24",
  doi = "10.1016/0020-0190(87)90198-0",
}
@article{Bird87:Supercombinator,
  title = "A Formal Development of an Efficient Supercombinator Compiler",
  author = "R. S. Bird",
  year = "1987",
  journal = "Science of Computer Programming",
  pages = "113--137",
  volume = "8",
  doi = "10.1016/0167-6423(87)90017-7",
}
@incollection{BirdMeertens87:Two,
  title = "Two Exercises Found In a Book on Algorithmics",
  author = "Richard S. Bird and Lambert Meertens",
  year = "1987",
  booktitle = "Program Specification and Transformation",
  editor = "Lambert Meertens",
  pages = "451--457",
  publisher = "North-Holland",
}
@incollection{Bird87:Theory,
  title = "An Introduction to the Theory of Lists",
  author = "Richard S. Bird",
  year = "1987",
  booktitle = "Logic of Programming and Calculi of Discrete Design",
  editor = "M. Broy",
  note = "NATO ASI Series~F Volume~36. Also available as Technical Monograph PRG-56, from the Programming Research Group, Oxford University",
  pages = "3--42",
  publisher = "Springer-Verlag",
}
@article{Bird86:Paragraph,
  title = "Transformational Programming and the Paragraph Problem",
  author = "Richard S. Bird",
  year = "1986",
  journal = "Science of Computer Programming",
  pages = "159--189",
  volume = "6",
  doi = "10.1016/0167-6423(86)90023-7",
}
@article{Bird85:Promotion,
  title = "Addendum to ``{T}he Promotion and Accumulation Strategies in Transformational Programming''",
  author = "Richard S. Bird",
  year = "1985",
  journal = "ACM Transactions on Programming Languages and Systems",
  month = "jul",
  number = "3",
  pages = "490--492",
  volume = "7",
}
@article{Bird84:Promotion,
  title = "The Promotion and Accumulation Strategies in Transformational Programming",
  author = "Richard S. Bird",
  year = "1984",
  journal = "ACM Transactions on Programming Languages and Systems",
  month = "oct",
  note = "See also \cite{Bird85:Promotion}",
  number = "4",
  pages = "487--504",
  volume = "6",
  doi = "10.1145/1780.1781",
}
@article{Bird84:Using,
  title = "Using Circular Programs to Eliminate Multiple Traversals of Data",
  author = "Richard S. Bird",
  year = "1984",
  journal = "Acta Informatica",
  pages = "239--250",
  volume = "21",
  doi = "10.1007/BF00264249",
}
@article{Bird81:Joggers,
  title = "The Jogger's Problem",
  author = "Richard S. Bird",
  year = "1981",
  journal = "Information Processing Letters",
  number = "3",
  pages = "114--117",
  volume = "13",
  doi = "10.1016/0020-0190(81)90122-8",
}
@article{DBLP:journals/csur/Bird81,
  title = "Surveyor's Forum: A Recurring Bug",
  author = "Richard S. Bird",
  year = "1981",
  journal = "ACM Computing Surveys",
  number = "2",
  pages = "243",
  volume = "13",
  doi = "10.1145/356842.356848",
}
@article{Bird80:Tabulation,
  title = "Tabulation Techniques for Recursive Programs",
  author = "Richard S. Bird",
  year = "1980",
  journal = "ACM Computing Surveys",
  month = "dec",
  note = "See \cite{DBLP:journals/csur/Bird81}",
  number = "4",
  pages = "403--417",
  volume = "12",
  doi = "10.1145/356827.356831",
}
@article{Bird79:Recursion,
  title = "Recursion Elimination with Variable Parameters",
  author = "Richard S. Bird",
  year = "1979",
  journal = "Computer Journal",
  number = "2",
  pages = "151--154",
  volume = "22",
  doi = "10.1093/comjnl/22.2.151",
}
@article{Bird77:Improving,
  title = "Improving Programs by the Introduction of Recursion",
  author = "Richard S. Bird",
  year = "1977",
  journal = "Communications of the ACM",
  month = "nov",
  number = "11",
  pages = "856--863",
  volume = "20",
  doi = "10.1145/359863.359889",
}
@article{Bird77:Two,
  title = "Two-Dimensional Pattern Matching",
  author = "Richard S. Bird",
  year = "1977",
  journal = "Information Processing Letters",
  number = "5",
  pages = "168--170",
  volume = "6",
  doi = "10.1016/0020-0190(77)90017-5",
}
@article{Bird77:Notes,
  title = "Notes on Recursion Elimination",
  author = "Richard S. Bird",
  year = "1977",
  journal = "Communications of the ACM",
  number = "6",
  pages = "434--439",
  volume = "20",
  doi = "10.1145/359605.359630",
}
@book{Bird76:Programs,
  title = "Programs and Machines",
  author = "Richard Bird",
  year = "1976",
  isbn = "0471016500",
  publisher = "Wiley",
}
@article{Bird75:Non,
  title = "Non Recursive Functionals",
  author = "Richard Bird",
  year = "1975",
  journal = "Zeitschrift f{\"u}r mathematische {L}ogik und {G}rundlagen der {M}athematik",
  pages = "41--46",
  volume = "21",
  doi = "10.1002/malq.19750210105",
}
@article{Bird74:On,
  title = "On Transformations of Programs",
  author = "Richard Bird",
  year = "1974",
  journal = "Journal of Computer and System Sciences",
  pages = "22-35",
  volume = "8",
}
@article{Bird74:Speeding,
  title = "Speeding Up Programs",
  author = "Richard S. Bird",
  year = "1974",
  journal = "Computer Journal",
  number = "4",
  pages = "337--339",
  volume = "17",
}
@article{Bird73:Note,
  title = "A Note on Definition by Cases",
  author = "Richard Bird",
  year = "1973",
  journal = "Zeitschrift f{\"u}r mathematische {L}ogik und {G}rundlagen der {M}athematik",
  pages = "207--208",
  volume = "19",
  doi = "10.1002/malq.19730191304",
}
@article{Bird72:Integers,
  title = "Integers with Given Initial Digits",
  author = "Richard Bird",
  year = "1972",
  journal = "American Mathematical Monthly",
  pages = "367-370",
  url = "https://www.jstor.org/stable/2978087",
  volume = "79",
  doi = "10.2307/2978087",
}