Informatics Report Series


Report   

EDI-INF-RR-0387


Related Pages

Report (by Number) Index
Report (by Date) Index
Author Index
Institute Index

Home
Title:Scrap your Nameplate (Functional Pearl)
Authors: James Cheney
Date:Sep 2005
Publication Title:ICFP 2005
Abstract:
Recent research has shown how boilerplate code, or repetitive code for traversing datatypes, can be eliminated using generic programming techniques already available within some implementations of Haskell. One particularly intractable kind of boilerplate is nameplate, or code having to do with names, name-binding, and fresh name generation. One reason for the difficulty is that operations on data structures involving names, as usually implemented, are not regular instances of standard map, fold, or zip operations. However, in nominal abstract syntax, an alternative treatment of names and binding based on swapping, operations such as alpha-equivalence, capture-avoiding substitution, and free variable set functions are much better-behaved. In this paper, we show how nominal abstract syntax techniques similar to those of FreshML can be provided as a Haskell library called FreshLib. In addition, we show how existing generic programming techniques can be used to reduce the amount of nameplate code that needs to be written for new datatypes involving names and binding to almost nothing---in short, how to scrap your nameplate.
Links To Paper
ACM
Bibtex format
@Misc{EDI-INF-RR-0387,
author = { James Cheney },
title = {Scrap your Nameplate (Functional Pearl)},
year = 2005,
month = {Sep},
url = {http://portal.acm.org/citation.cfm?id=1086365.1086389},
}


Home : Publications : Report 

Please mail <reports@inf.ed.ac.uk> with any changes or corrections.
Unless explicitly stated otherwise, all material is copyright The University of Edinburgh