2. Publications

  1. Work in progress
  2. Books or parts of books
  3. Editorial work
  4. Journal articles
  5. Conference and workshop papers
  6. Theses
  7. Technical reports
  8. Miscellaneous
  9. Notice
By subject:
  1. Generic programming: E3, B8, B7, B6, B5, D3, J16, J12, J11, J9, J7, J4, J2, P25, P24, P22, P21, P18, P15, P13, P11, P10, P9, P8, P7, P6, R21, R20, R19, R18, R15, R13, R12, R11, P2, R7, R4, R3.
  2. Purely functional data structures: J15, J10, J8, J6, J5, J4, J1, P19, P17, P14, P5, P4, R14, R10, R9, R8, R5, R4, M4.
  3. Language design: P26.
  4. Program derivation: J13, P20, P16, R17, R16, X2.
  5. Monads: J3, P12, P1, R6, R2, X1.
  6. Software Reliability: P23.
  7. Functional programming in education: P3, B1.
  8. Haskell: E1, M3, M2.
  9. Strictness analysis: B3, D2.
  10. Deductive databases: B2.
  11. Implementation: R1.
  12. Mathematical logic: M1.
  13. Type systems: B4, D1, R22.
Here is a BibTeX file containing my publications.

2.0 Work in progress

X2 Program derivation. NEW
Ralf Hinze and Ross Paterson. Derivation of a Typed Functional LR Parser. (314K PDF)
X1 Monads.
Ralf Hinze. Functional Pearl: Typed Quote/Antiquote. (239K PDF)

2.1 Books or parts of books

B8 Generic programming. NEW
Ralf Hinze and Andres Löh. Generic Programming, Now!. In Roland Backhouse, Jeremy Gibbons, Ralf Hinze and Johan Jeuring, editors, Spring School on Generic Programming, Lecture Notes in Computer Science. Springer-Verlag, 2006. (Preliminary lecture notes: 412K PDF)
B7 Generic programming. NEW
Ralf Hinze, Johan Jeuring and Andres Löh. Comparing Approaches to Generic Programming. In Roland Backhouse, Jeremy Gibbons, Ralf Hinze and Johan Jeuring, editors, Spring School on Generic Programming, Lecture Notes in Computer Science. Springer-Verlag, 2006. (Preliminary lecture notes: 366K PDF)
B6 Generic programming.
Ralf Hinze and Johan Jeuring. Generic Haskell: Applications. In Roland Backhouse and Jeremy Gibbons, editors, Generic Programming: Advanced Lectures, pp 57--97. Lecture Notes in Computer Science 2793. Springer-Verlag, 2003. (295K PDF)
B5 Generic programming.
Ralf Hinze and Johan Jeuring. Generic Haskell: Practice and Theory. In Roland Backhouse and Jeremy Gibbons, editors, Generic Programming: Advanced Lectures, pp 1-56. Lecture Notes in Computer Science 2793. Springer-Verlag, 2003. (360K PDF; talk: 288K PDF)
B4 Type systems.
Ralf Hinze. Fun with phantom types. In Jeremy Gibbons and Oege de Moor, editors, The Fun of Programming, pp. 245-262. Palgrave Macmillan, 2003. ISBN 1-4039-0772-2 hardback, ISBN 0-333-99285-7 paperback. (182K PDF)
B3 Strictness analysis.
Ralf Hinze. Projektionsbasierte Striktheitsanalyse. In Ausgezeichnete Informatikdissertationen 1996, pp. 46-61. Teubner, Stuttgart, 1998. (173K PDF)
B2 Deductive databases.
Armin B. Cremers, Ulrike Griefahn, Ralf Hinze. Deduktive Datenbanken - Eine Einführung aus der Sicht der logischen Programmierung. Künstliche Intelligenz. Vieweg, Braunschweig/Wiesbaden, 1994. Prototyp des deduktiven Datenbanksystems.
B1 Functional programming in education.
Ralf Hinze. Einführung in die funktionale Programmierung mit Miranda. Teubner, Stuttgart, 1992.

2.2 Editorial work

E3 Generic programming.
Roland Backhouse, Jeremy Gibbons, Ralf Hinze and Johan Jeuring (editors), Spring School on Generic Programming 2006, Lecture Notes in Computer Science, Springer-Verlag, 2006.
E2 Functional Pearls
Ralf Hinze (editor). Special Issue on Functional Pearls. Journal of Functional Programming, 14(6), November 2004.
E1 Haskell
Ralf Hinze (editor). Proceedings of the 2001 ACM SIGPLAN Haskell Workshop (HW'2001), 2nd September 2001, Firenze, Italy. Electronic Notes in Theoretical Computer Science, Vol 59. The preliminary proceedings appear as a Technical Report of Universiteit Utrecht, UU-CS-2001-62. (4979K PDF).

2.3 Journal articles

J16 Generic programming. NEW
Ralf Hinze. Generics for the masses. Journal of Functional Programming, ICFP 2004 Special Issue. 16(4&5):451-483, Sep. 2006. (278K PDF)
J15 Purely functional data structures. NEW
Ralf Hinze and Ross Paterson. Finger trees: a simple general-purpose data structure. Journal of Functional Programming, 2005. 16(1):1-21, Jan. 2006. (224K PDF)
J13 Program derivation.
Ralf Hinze. Theoretical Pearl: Church numerals, twice! Journal of Functional Programming, 15(1):1-13, Januar 2005. (202K PDF)
J12 Generic programming.
Ralf Hinze, Johan Jeuring, and Andres Löh. Type-indexed data types. Science of Computer Programming, MPC Special Issue, 51:117-151, 2004. (302K PDF)
J11 Generic programming.
Ralf Hinze. Functional Pearl: Formatting: a class act. Journal of Functional Programming, 13(5):935-944, September 2003. (66K gzipped postscript)
J10 Purely functional data structures.
Ralf Hinze. Functional Pearl: A fresh look at binary search trees. Journal of Functional Programming, 12(6):601-607, November 2002. (56K gzipped postscript)
J9 Generic programming.
Ralf Hinze. Polytypic values possess polykinded types. Science of Computer Programming, MPC Special Issue, 43:129-159, 2002. (262K gzipped postscript)
J8 Purely functional data structures.
Ralf Hinze and Johan Jeuring. Functional Pearl: Weaving a Web. Journal of Functional Programming, 11(6):681-689, November 2001. (69K gzipped postscript)
J7 Generic programming.
Ralf Hinze. Polytypic Programming with Ease. Journal of Functional and Logic Programming, 2001(3), July 2001. NB. This article is a revised and extended version of the paper P7. (123K gzipped postscript)
J6 Purely functional data structures.
Ralf Hinze. Manufacturing datatypes. Journal of Functional Programming, Special Issue on Algorithmic Aspects of Functional Programming Languages, 11(5):493-524, September 2001. NB. This article is a revised version of the paper P4. (144K gzipped postscript)
J5 Purely functional data structures.
Ralf Hinze. Functional Pearl: Perfect trees and bit-reversal permutations. Journal of Functional Programming, 10(3):305-317, May 2000. NB. This article is a revised version of the report R8. (81K gzipped postscript)
J4 Generic programming, purely functional data structures.
Ralf Hinze. Generalizing generalized tries. Journal of Functional Programming, 10(4):327-351, July 2000. NB. This article is a throughly revised version of the report R4. (110K gzipped postscript, accompanying material)
J3 Monads.
Ralf Hinze. Prolog's control constructs in a functional setting - Axioms and implementation. International Journal of Foundations of Computer Science, 12(2):125-170, 2001. NB. This article is a revised and extended version of the paper P1. (129K gzipped postscript)
J2 Generic programming.
Ralf Hinze. Polytypic functions over nested datatypes. Discrete Mathematics and Theoretical Computer Science, 3(4):193-214, 1999. NB. This article is a revised version of the report R3 (see also P2). (abstract and download)
J1 Purely functional data structures.
Ralf Hinze. Functional Pearl: Explaining binomial heaps. Journal of Functional Programming, 9(1):93-104, January 1999. (84K gzipped postscript, accompanying material)

2.4 Conference and workshop papers

P26 Language design. NEW
Andres Löh and Ralf Hinze. Open data types and open functions. In Michael Maher, editor, Eighth ACM-SIGPLAN International Symposium on Principles and Practice of Declarative Programming (PPDP'06), 10-12 July, 2006, Venice, Italy. (196K PDF, see also here)
P25 Generic programming. NEW
Ralf Hinze and Andres Löh. "Scrap Your Boilerplate" Revolutions. In Tarmo Uustalu, editor, Eighth International Conference on Mathematics of Program Construction, 3-5 July, 2006, Kuressaare, Estonia. Lecture Notes in Computer Science, Springer-Verlag. (296K PDF, see also here)
P24 Generic programming. NEW
Bruno C.d.S. Oliveira, Ralf Hinze and Andres Löh. Generics as a Library. In Henrik Nilsson, editor, Seventh Symposium on Trends in Functional Programming, 19-21 April, 2006, Nottingham, UK. (160K PDF)
P23 Software Reliability. NEW
Ralf Hinze, Johan Jeuring and Andres Löh. Typed Contracts for Functional Programming. In Philip Wadler and Masimi Hagiya, editors, Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006), 24-26 April 2006, Fuji Susono, Japan. (213K PDF)
P22 Generic programming. NEW
Ralf Hinze, Andres Löh and Bruno C. d. S. Oliveira. "Scrap Your Boilerplate" Reloaded. In Philip Wadler and Masimi Hagiya, editors, Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006), 24-26 April 2006, Fuji Susono, Japan. (187K PDF, see also here)
P21 Generic programming.
Ralf Hinze. Generics for the masses. In Kathleen Fisher, editor, Proceedings of the 2004 International Conference on Functional Programming, Snowbird, Utah, September 19-22, 2004. (121K PDF)
P20 Program derivation.
Ralf Hinze. An algebra of scans. In Dexter Kozen, editor, Proceedings of the Seventh International Conference on Mathematics of Program Construction (MPC 2004), Stirling, Scotland, UK, July 12-14, 2004. (283K PDF)
P19 Purely functional data structures.
Richard Bird and Ralf Hinze. Functional pearl: Trouble shared is trouble halved. In Johan Jeuring, editor, Proceedings of the ACM SIGPLAN 2003 Haskell Workshop, Uppsala, Sweden, August 28, 2003, pp 1-6. (78K PDF)
P18 Generic programming.
James Cheney and Ralf Hinze. A Lightweight Implementation of Generics and Dynamics. In Manuel Chakravarty, editor, Proceedings of the ACM SIGPLAN 2002 Haskell Workshop, Pittsburgh, PA, USA, October 3, 2002, pp 90-104. (114K PDF, 64K gzipped postscript)
P17 Purely functional data structures.
Ralf Hinze. Bootstrapping One-sided Flexible Arrays. In Simon Peyton Jones, editor, Proceedings of the 2002 International Conference on Functional Programming, Pittsburgh, PA, USA, October 4-6, 2002, pp. 2-13. (120K PDF, 62K gzipped postscript)
P16 Program derivation.
Ralf Hinze. Constructing tournament representations: An exercise in pointwise relational programming. In Eerke Boiten, Bernhard Möller, editors, Proceedings of the Sixth International Conference on Mathematics of Program Construction (MPC 2002), Dagstuhl, Germany, July 8-10, 2002. Lecture Notes in Computer Science 2386, pp. 131-147. (192K PDF, 71K gzipped postscript)
P15 Generic programming.
Ralf Hinze, Johan Jeuring, Andres Löh. Type-indexed data types. In Eerke Boiten, Bernhard Möller, editors, Proceedings of the Sixth International Conference on Mathematics of Program Construction (MPC 2002), Dagstuhl, Germany, July 8-10, 2002. Lecture Notes in Computer Science 2386, pp. 148-174. (281K PDF, 101K gzipped postscript)
P14 Purely functional data structures.
Ralf Hinze. A Simple Implementation Technique for Priority Search Queues. In Xavier Leroy, editor, Proceedings of the 2001 International Conference on Functional Programming, Firenze, Italy, September 3-5, 2001. ©Copyright 2001 by ACM, Inc. (446K PDF, 1023K gzipped postscript, the copy is posted by permission of ACM and may not be redistributed)
P13 Generic programming.
Ralf Hinze and Simon Peyton Jones. Derivable Type Classes. In Graham Hutton, editor. Proceedings of the 2000 ACM SIGPLAN Haskell Workshop, Montreal, Canada, September 17, 2000. Volume 41.1 of Electronic Notes in Theoretical Computer Science, Elsevier Science, August 2001. (preliminary version: 89K gzipped postscript, final version: 119K gzipped postscript)
P12 Monads.
Ralf Hinze. Deriving Backtracking Monad Transformers. In Phil Wadler, editor, Proceedings of the 2000 International Conference on Functional Programming, Montreal, Canada, September 18-20, 2000. ©Copyright 2000 by ACM, Inc. (71K gzipped postscript, the copy is posted by permission of ACM and may not be redistributed)
P11 Generic programming.
Ralf Hinze. Memo functions, polytypically!. In Johan Jeuring, editor, Proceedings of the Second Workshop on Generic Programming, WGP 2000, Ponte de Lima, Portugal, 6th July 2000. (73K gzipped postscript. NB. This is an updated version that supersedes the same paper in the proceedings.)
P10 Generic programming.
Ralf Hinze. Efficient Generalized Folds. In Johan Jeuring, editor, Proceedings of the Second Workshop on Generic Programming, WGP 2000, Ponte de Lima, Portugal, 6th July 2000. (69K gzipped postscript)
P9 Generic programming.
Ralf Hinze. Polytypic values possess polykinded types. In Roland Backhouse, J.N. Oliveira, editors, Proceedings of the Fifth International Conference on Mathematics of Program Construction (MPC 2000), Ponte de Lima, Portugal, July 3-5, 2000. This paper is a revised version of the report R13. (106K gzipped postscript)
P8 Generic programming.
Ralf Hinze. A New Approach to Generic Functional Programming. In Proceedings of the 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Boston, Massachusetts, January 19-21, 2000. ©Copyright 2000 by ACM, Inc. NB. This paper is a revised version of the report R12. (114K gzipped postscript, the copy is posted by permission of ACM and may not be redistributed)
P7 Generic programming.
Ralf Hinze. Polytypic Programming with Ease (Extended Abstract). In 4th Fuji International Symposium on Functional and Logic Programming (FLOPS'99), Tsukuba, Japan, November 1999, pp. 21-36. Lecture Notes in Computer Science 1722. ©Springer-Verlag. NB. This paper is an extended abstract of the report R7. (84K gzipped postscript)
P6 Generic programming.
Ralf Hinze. A Generic Programming Extension for Haskell. In Erik Meijer, editor, Proceedings of the Third Haskell Workshop, Paris, France, September 1999. The proceedings appear as a technical report of Universiteit Utrecht, UU-CS-1999-28. (73K gzipped postscript)
P5 Purely functional data structures.
Ralf Hinze. Constructing red-black trees. In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages, WAAAPL'99, Paris, France, September 1999, pp. 89-99. The proceedings appear as a technical report of Columbia University, CUCS-023-99. NB. This paper is a revised version of the report R10. (65K gzipped postscript)
P4 Purely functional data structures.
Ralf Hinze. Manufacturing datatypes. In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages, WAAAPL'99, Paris, France, September 1999, pp. 1-16. The proceedings appear as a technical report of Columbia University, CUCS-023-99. NB. This paper is a revised version of the report R9. (56K gzipped postscript)
P3 Functional programming in education.
Robert Giegerich, Ralf Hinze, Stefan Kurtz. Straight to the Heart of Computer Science via Functional Programming. In Matthias Felleisen, Michael Hanus, Simon Thompson, editors, Proceedings of the Workshop on Functional and Declarative Programming in Education, FDPE'99, Paris, France, September 1999. The proceedings appear as a technical report of Rice University, Rice COMP TR99-346. (28K gzipped postscript)
P2 Generic programming.
Ralf Hinze. Polytypic Functions Over Nested Datatypes (Extended Abstract). In Rafael Dueire Lins, editor, 3rd Latin-American Conference on Functional Programming (CLaPF'99), March 1999. NB. This paper is an extended abstract of the report R3. (74K gzipped postscript)
P1 Monads.
Ralf Hinze. Prological features in a functional setting - axioms and implementations. In Masahiko Sato, Yoshihito Toyama, editors, Third Fuji International Symposium on Functional and Logic Programming (FLOPS'98), Kyoto University, Japan, April 1998, pp. 98-122. World Scientific, Singapore, New Jersey, London, Hong Kong. (89K gzipped postscript)

2.5 Theses

D3 Generic programming.
Ralf Hinze. Generic Programs and Proofs. Habilitationsschrift, Universität Bonn, October 2000. (413K gzipped postscript, 1050K PDF)
D2 Strictness analysis.
Ralf Hinze. Projection-based Strictness Analysis - Theoretical and Practical Aspects. Inauguraldissertation, Universität Bonn, November 1995. (843K gzipped postscript)
D1 Type systems.
Ralf Hinze. Typsysteme und Typinferenzsysteme. Diplomarbeit, Universität Dortmund, Mai 1989.

2.6 Technical reports

R22 Type systems.
James Cheney and Ralf Hinze. First-class phantom types. Technical Report TR2003-1901, Cornell University, 2003.
R21 Generic programming.
Ralf Hinze and Johan Jeuring. Generic Haskell: Applications. Technical Report UU-CS-2003-16, Department of Computer Science, Utrecht University, 2003.
R20 Generic programming.
Ralf Hinze and Johan Jeuring. Generic Haskell: Practice and theory. Technical Report UU-CS-2003-15, Department of Computer Science, Utrecht University, 2003.
R19 Generic programming.
Ralf Hinze, Johan Jeuring, and Andres Löh. Type-indexed data types. Technical Report UU-CS-2002-11, Department of Computer Science, Utrecht University, 2002.
R18 Generic programming.
Peter Achten and Ralf Hinze. Combining generics and dynamics. Technical Report NIII-R0206, Nijmegen Institute for Computing and Information Sciences, University of Nijmegen, July 2002.
R17 Program derivation.
Ralf Hinze. Church numerals, twice!. Technical Report IAI-TR-2002-3, Institut für Informatik III, Universität Bonn, February 2002.
R16 Program derivation.
Ralf Hinze. Constructing tournament representations: An exercise in pointwise relational programming. Technical Report IAI-TR-2002-2, Institut für Informatik III, Universität Bonn, February 2002.
R15 Generic programming.
Dave Clarke, Ralf Hinze, Johan Jeuring, Andres Löh, and Jan de Wit. The Generic Haskell user's guide. Technical Report UU-CS-2001-26, Department of Computer Science, Utrecht University, 2001.
R14 Purely functional data structures.
Ralf Hinze. A Simple Implementation Technique for Priority Search Queues. Technical Report UU-CS-2001-09, Department of Computer Science, Utrecht University, March 2001. (843K gzipped postscript, 773K PDF, accompanying material)
R13 Generic programming.
Ralf Hinze. Polytypic values possess polykinded types. Technical Report IAI-TR-99-15, Institut für Informatik III, Universität Bonn, December 1999. (102K gzipped postscript)
R12 Generic programming.
Ralf Hinze. A New Approach to Generic Functional Programming. Technical Report IAI-TR-99-9, Institut für Informatik III, Universität Bonn, July 1999. (111K gzipped postscript)
R11 Generic programming.
Ralf Hinze. Efficient generalized folds. Technical Report IAI-TR-99-8, Institut für Informatik III, Universität Bonn, June 1999. (75K gzipped postscript)
R10 Purely functional data structures.
Ralf Hinze. Constructing red-black trees. Technical Report IAI-TR-99-6, Institut für Informatik III, Universität Bonn, May 1999. (94K gzipped postscript)
R9 Purely functional data structures.
Ralf Hinze. Manufacturing datatypes. Technical Report IAI-TR-99-5, Institut für Informatik III, Universität Bonn, April 1999. (95K gzipped postscript)
R8 Purely functional data structures.
Ralf Hinze. Perfect trees and bit-reversal permutations. Technical Report IAI-TR-99-4, Institut für Informatik III, Universität Bonn, March 1999. (75K gzipped postscript)
R7 Generic programming.
Ralf Hinze. Polytypic programming with ease. Technical Report IAI-TR-99-2, Institut für Informatik III, Universität Bonn, February 1999. (106K gzipped postscript)
R6 Monads.
Ralf Hinze. Deriving monad transformers. Technical Report IAI-TR-99-1, Institut für Informatik III, Universität Bonn, January 1999. (95K gzipped postscript)
R5 Purely functional data structures.
Ralf Hinze. Numerical Representations as Higher-Order Nested Datatypes. Technical Report IAI-TR-98-12, Institut für Informatik III, Universität Bonn, December 1998. (190K gzipped postscript)
R4 Generic programming, purely functional data structures.
Ralf Hinze. Generalizing Generalized Tries. Technical Report IAI-TR-98-11, Institut für Informatik III, Universität Bonn, November 1998. (96K gzipped postscript)
R3 Generic programming.
Ralf Hinze. Polytypic Functions Over Nested Datatypes. Technical Report IAI-TR-98-10, Institut für Informatik III, Universität Bonn, October 1998. (92K gzipped postscript)
R2 Monads.
Ralf Hinze. Monadic-style backtracking. Technical Report IAI-TR-96-9, Institut für Informatik III, Universität Bonn, October 1996. NB. This report is outdated. (88K gzipped postscript)
R1 Implementation.
Ralf Hinze. The categorical abstract machine: Basics and enhancments. Technical Report IAI-TR-92-1, Institut für Informatik III, Universität Bonn, December 1992. (140K gzipped postscript)

2.7 Miscellaneous

M4 Purely functional data structures.
Ralf Hinze. Book review: "Purely Functional Data Structures", by Chris Okasaki.. Journal of Functional Programming, 9(5):577-578, September 1999. (27K gzipped postscript)
M3 Haskell.
Simon Peyton Jones [editor], John Hughes [editor], Lennart Augustsson, Dave Barton, Brian Boutel, Warren Burton, Simon Fraser, Joseph Fasel, Kevin Hammond, Ralf Hinze, Paul Hudak, Thomas Johnsson, Mark Jones, John Launchbury, Erik Meijer, John Peterson, Alastair Reid, Colin Runciman, and Philip Wadler. Haskell 98 - A non-strict, purely functional language. February 1999. (The Haskell 98 Online Report)
M2 Haskell.
Simon Peyton Jones [editor], John Hughes [editor], Lennart Augustsson, Dave Barton, Brian Boutel, Warren Burton, Simon Fraser, Joseph Fasel, Kevin Hammond, Ralf Hinze, Paul Hudak, Thomas Johnsson, Mark Jones, John Launchbury, Erik Meijer, John Peterson, Alastair Reid, Colin Runciman, and Philip Wadler. Standard libraries for the Haskell 98 programming language. February 1999. (The Haskell 98 Online Report)
M1 Mathematical logic.
Armin B. Cremers, Elmar Eder, Ralf Hinze. Die Rolle der mathematischen Logik in der künstlichen Intelligenz. In Künstliche Intelligenz: Leitvorstellungen und Verantwortbarkeit, Band 1: Diskussionsgrundlage. Verein Deutscher Ingenieure, 1993.

2.8 Notice

The documents contained in this page are included by the contributing authors as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the authors or by other copyright holders, notwithstanding that they have offered their works here electronically. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit written permission of the copyright holder.


Ralf Hinze, ralf@informatik.uni-bonn.de, 25th May 2006.

Valid HTML 4.01!