@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.", } @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", } @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", } @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", } @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", } @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", } @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", } @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", } @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{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: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{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{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", } @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{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", } @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", }