Ghostbuster: A tool for simplifying and converting GADTs. (22nd June 2018)
- Record Type:
- Journal Article
- Title:
- Ghostbuster: A tool for simplifying and converting GADTs. (22nd June 2018)
- Main Title:
- Ghostbuster: A tool for simplifying and converting GADTs
- Authors:
- ZAKIAN, TIMOTHY A. K.
MCDONELL, TREVOR L.
CIMINI, MATTEO
NEWTON, RYAN R. - Abstract:
- Abstract: Generalized Algebraic Data Types, or simply GADTs, can encode non-trivial properties in the types of the constructors. Once such properties are encoded in a datatype, however, all code manipulating that datatype must provide proof that it maintains these properties in order to typecheck. In this paper, we take a step toward gradualizing these obligations. We introduce a tool, Ghostbuster, that produces simplified versions of GADTs which elide selected type parameters, thereby weakening the guarantees of the simplified datatype in exchange for reducing the obligations necessary to manipulate it. Like ornaments, these simplified datatypes preserve the recursive structure of the original, but unlike ornaments, we focus on information-preserving bidirectional transformations. Ghostbuster generates type-safe conversion functions between the original and simplified datatypes, which we prove are the identity function when composed. We evaluate a prototype tool for Haskell against thousands of GADTs found on the Hackage package database, generating simpler Haskell'98 datatypes and round-trip conversion functions between the two.
- Is Part Of:
- Journal of functional programming. Volume 28(2018)
- Journal:
- Journal of functional programming
- Issue:
- Volume 28(2018)
- Issue Display:
- Volume 28, Issue 2018 (2018)
- Year:
- 2018
- Volume:
- 28
- Issue:
- 2018
- Issue Sort Value:
- 2018-0028-2018-0000
- Page Start:
- Page End:
- Publication Date:
- 2018-06-22
- Subjects:
- Functional programming (Computer science) -- Periodicals
- Journal URLs:
- http://journals.cambridge.org/action/displayJournal?jid=JFP ↗
http://firstsearch.oclc.org ↗ - DOI:
- 10.1017/S0956796818000114 ↗
- Languages:
- English
- ISSNs:
- 0956-7968
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library STI - ELD Digital store
- Ingest File:
- 7980.xml