publications: - title: "Libraries for Generic Programming in Haskell" author: - name: "Johan Jeuring" link: "http://people.cs.uu.nl/johanj/" - name: "Sean Leather" link: "http://www.cs.uu.nl/staff/leather.html" - name: "José Pedro Magalhães" link: "https://researchr.org/alias/jos%C3%A3%C2%A9-pedro-magalh%C3%A3%C2%A3es" - name: "Alexey Rodriguez Yakushev" link: "https://researchr.org/alias/alexey-rodriguez-yakushev" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-642-04652-0_4" links: doi: "http://dx.doi.org/10.1007/978-3-642-04652-0_4" tags: - "generic programming" - "Haskell" - "programming" researchr: "https://researchr.org/publication/JeuringLMY08" cites: 0 citedby: 0 pages: "165-229" booktitle: "afp" kind: "inproceedings" key: "JeuringLMY08" - 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" kind: "inproceedings" key: "LLL09diff"