Alloy: fast generic transformations for Haskell

Neil C.C. Brown, Adam T. Sampson

Research output: Chapter in Book/Report/Conference proceedingConference contribution

7 Citations (Scopus)


Data-type generic programming can be used to traverse and manipulate specific parts of large heterogeneously-typed tree structures, without the need for tedious boilerplate. Generic programming is often approached from a theoretical perspective, where the emphasis lies on the power of the representation rather than on efficiency. We describe use cases for a generic system derived from our work on a nanopass compiler, where efficiency is a real concern, and detail a new generics approach (Alloy) that we have developed in Haskell to allow our compiler passes to traverse the abstract syntax tree quickly. We benchmark our approach against several other Haskell generics approaches and statistically analyse the results, finding that Alloy is fastest on heterogeneously-typed trees.
Original languageEnglish
Title of host publicationProceedings of the 2nd ACM SIGPLAN symposium on Haskell
Place of PublicationNew York
PublisherAssociation for Computing Machinery (ACM)
Number of pages12
ISBN (Print)9781605585086
Publication statusPublished - 3 Sep 2009
Externally publishedYes
Event2nd ACM SIGPLAN symposium on Haskell3/9/2003 - Edinburgh, United Kingdom
Duration: 3 Sep 20093 Sep 2009
Conference number: 2nd


Other2nd ACM SIGPLAN symposium on Haskell3/9/2003
Abbreviated titleHaskell 2009
Country/TerritoryUnited Kingdom


  • Generic programming
  • Haskell
  • Alloy


Dive into the research topics of 'Alloy: fast generic transformations for Haskell'. Together they form a unique fingerprint.

Cite this