Skip to search boxSkip to navigationSkip to main content

Parametric Compositional Data Types

  • University of Copenhagen
Research Output:
Conference Article in Proceeding or Book/Report chapter
Book chapter
Peer-review

Publication Information

Output type

Research Output:
Conference Article in Proceeding or Book/Report chapter
Book chapter
Peer-review

Original language

Undefined/Unknown

Pages from-to (Number of pages)

Pages 3-24 (22 pages)

Publication milestones

  • Published - 01/02/2012

Publication status

Published - 01/02/2012

Volume

76

Publisher

Open Publishing Association

Publication IDs

  • Scopus: 84887187697

Host publication title

Proceedings Fourth Workshop on Mathematically Structured Functional Programming

Host publication editors

  • James Chapman
  • Paul Blain Levy

Abstract

In previous work we have illustrated the benefits that compositional data types (CDTs) offer for implementing languages and in general for dealing with abstract syntax trees (ASTs). Based on Swierstra's data types à la carte, CDTs are implemented as a Haskell library that enables the definition of recursive data types and functions on them in a modular and extendable fashion. Although CDTs provide a powerful tool for analysing and manipulating ASTs, they lack a convenient representation of variable binders. In this paper we remedy this deficiency by combining the framework of CDTs with Chlipala's parametric higher-order abstract syntax (PHOAS). We show how a generalisation from functors to difunctors enables us to capture PHOAS while still maintaining the features of the original implementation of CDTs, in particular its modularity. Unlike previous approaches, we avoid so-called exotic terms without resorting to abstract types: this is crucial when we want to perform transformations on CDTs that inspect the recursively computed CDTs, e.g. constant folding.

Publication metrics

PlumX, opens in new tab

Captures
20
Citations
10