publications: - title: "Generic programming in 3D" author: - name: "Ralf Hinze" link: "https://researchr.org/alias/ralf-hinze" - name: "Andres Löh" link: "http://people.cs.uu.nl/andres/" year: "2009" doi: "http://dx.doi.org/10.1016/j.scico.2007.10.006" abstract: "Support for generic programming consists of three essential ingredients: support for overloaded functions, a run-time type representation, and a generic view on data. Different approaches to datatype-generic programming occupy different points in this design space. In this article, we revisit the \"Scrap your boilerplate\" approach and identify its location within the three-dimensional design space. The characteristic features of \"Scrap your boilerplate\" are its two generic views, the 'spine' view for consuming and transforming data, and the 'type-spine' view for producing data. We show how to combine these views with different overloading mechanisms and type representations. " links: doi: "http://dx.doi.org/10.1016/j.scico.2007.10.006" tags: - "generic programming" - "data-flow programming" - "data-flow" - "programming" - "design" - "systematic-approach" researchr: "https://researchr.org/publication/HinzeL09" cites: 0 citedby: 0 journal: "Science of Computer Programming" volume: "74" number: "8" pages: "590-628" kind: "article" key: "HinzeL09" - title: "Extensible and modular generics for the masses" author: - name: "Bruno C. d. S. Oliveira" link: "http://ropas.snu.ac.kr/~bruno/" - name: "Ralf Hinze" link: "https://researchr.org/alias/ralf-hinze" - name: "Andres Löh" link: "http://people.cs.uu.nl/andres/" year: "2006" tags: - "C++" researchr: "https://researchr.org/publication/OliveiraHL06" cites: 0 citedby: 0 pages: "199-216" booktitle: "Revised Selected Papers from the Seventh Symposium on Trends in Functional Programming, TFP 2006, Nottingham, United Kingdom, 19-21 April 2006" editor: - name: "Henrik Nilsson" link: "https://researchr.org/alias/henrik-nilsson" volume: "7" series: "Trends in Functional Programming" publisher: "Intellect" isbn: "978-1-84150-188-8" kind: "inproceedings" key: "OliveiraHL06" - title: "Type-safe diff for families of datatypes" author: - name: "Eelco Lempsink" link: "http://eelco.lempsink.nl/" - name: "Sean Leather" link: "http://www.cs.uu.nl/staff/leather.html" - name: "Andres Löh" link: "http://people.cs.uu.nl/andres/" year: "2009" doi: "http://doi.acm.org/10.1145/1596614.1596624" abstract: "The UNIX diff program finds the difference between two text files using a classic algorithm for determining the longest common subsequence; however, when working with structured input (e.g. program code), we often want to find the difference between tree-like data (e.g. the abstract syntax tree). In a functional programming language such as Haskell, we can represent this data with a family of (mutually recursive) datatypes. In this paper, we describe a functional, datatype-generic implementation of diff (and the associated program patch). Our approach requires advanced type system features to preserve type safety; therefore, we present the code in Agda, a dependently-typed language well-suited to datatype-generic programming. In order to establish the usefulness of our work, we show that its efficiency can be improved with memoization and that it can also be defined in Haskell. " links: doi: "http://doi.acm.org/10.1145/1596614.1596624" tags: - "programming languages" - "data-flow language" - "generic programming" - "abstract syntax" - "functional programming" - "Haskell" - "type system" - "data-flow programming" - "data-flow" - "programming" - "systematic-approach" researchr: "https://researchr.org/publication/LLL09diff" cites: 0 citedby: 0 booktitle: "WGP '09: Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming" address: "New York, NY, USA" publisher: "ACM" isbn: "978-1-60558-510-9" kind: "inproceedings" key: "LLL09diff"