Edinburgh Research Explorer Promoting Functions to Type Families in Haskell Citation for published version: Eisenberg, RA & Stolarek, J 2014, Promoting Functions to Type Families in Haskell. in Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell. Haskell '14, ACM, New York, NY, USA, pp. 95-106. https://doi.org/10.1145/2633357.2633361 Digital Object Identifier (DOI): 10.1145/2633357.2633361 Link: Link to publication record in Edinburgh Research Explorer Document Version: Peer reviewed version Published In: Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell General rights Copyright for the publications made accessible via the Edinburgh Research Explorer is retained by the author(s) and / or other copyright owners and it is a condition of accessing these publications that users recognise and abide by the legal requirements associated with these rights. Take down policy The University of Edinburgh has made every reasonable effort to ensure that Edinburgh Research Explorer content complies with UK legislation. If you believe that the public display of this file breaches copyright please contact
[email protected] providing details, and we will remove access to the work immediately and investigate your claim. Download date: 23. Sep. 2021 Final draft submitted for publication at Haskell Symposium 2014 Promoting Functions to Type Families in Haskell Richard A. Eisenberg Jan Stolarek University of Pennsylvania Politechnika Łodzka´
[email protected] [email protected] Abstract In other words, is type-level programming expressive enough? Haskell, as implemented in the Glasgow Haskell Compiler (GHC), To begin to answer this question, we must define “enough.” In this is enriched with many extensions that support type-level program- paper, we choose to interpret “enough” as meaning that type-level ming, such as promoted datatypes, kind polymorphism, and type programming is at least as expressive as term-level programming.