Not all extensions are equal: Taxonomy of Haskell language extensions based on function and usage
J. Gvozdiovas (TU Delft - Electrical Engineering, Mathematics and Computer Science)
Jesper Cockx – Mentor (TU Delft - Programming Languages)
L.H. Applis – Mentor (TU Delft - Arts & Crafts)
More Info
expand_more
Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.
Abstract
Haskell programming language has a long history of extensions which extend and
modify its syntax and semantics. They range from small quality-of-life syntax im-
provements, to complete overhauls of the type system. Such extensions are commonly
implemented directly as a part of Glasgow Haskell Compiler (GHC) or as plugins for
GHC through its plugin API. This paper looks at the present ecosystem of such lan-
guage extensions, identifying the key categories into which extensions can be separated,
based on how often and in which ways they are used, and their functionality.
We analysed which extensions are used in packages uploaded to Hackage, a central
open-source Haskell archive. We further extracted the metadata about the packages,
including the user-submitted tags and maintainer lists, to ascertain how and when are
language extensions used.
The result of our research is a combination of several proposed potential taxonomies,
that can be used by academics and practitioners alike.