2014
DOI: 10.1145/2775050.2633361
|View full text |Cite
|
Sign up to set email alerts
|

Promoting functions to type families in Haskell

Abstract: Haskell, as implemented in the Glasgow Haskell Compiler (GHC), is enriched with many extensions that support type-level programming, such as promoted datatypes, kind polymorphism, and type families. Yet, the expressiveness of the type-level language remains limited. It is missing many features present at the term level, including case expressions, anonymous functions, partially-applied functions, and let expressions. In this paper, we present an algorithmwith a proof of correctness -to encode these term-level … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2014
2014
2021
2021

Publication Types

Select...
3
1
1

Relationship

0
5

Authors

Journals

citations
Cited by 6 publications
(2 citation statements)
references
References 22 publications
0
2
0
Order By: Relevance
“…Dependent Types in Programming Integration of dependent types into Haskell has been a long standing goal [21] that dates back to Cayenne [4], a Haskell-like, fully dependent type language with undecidable type checking. Our approach differs significantly in that reflection and PLE use SMT-solvers to drastically simplify proofs over decidable theories.…”
Section: Related Workmentioning
confidence: 99%
“…Dependent Types in Programming Integration of dependent types into Haskell has been a long standing goal [21] that dates back to Cayenne [4], a Haskell-like, fully dependent type language with undecidable type checking. Our approach differs significantly in that reflection and PLE use SMT-solvers to drastically simplify proofs over decidable theories.…”
Section: Related Workmentioning
confidence: 99%
“…Recently, Eisenberg and Stolarek (2014) introduced a library that promotes function definitions to closed type family definitions. This function promotion mechanism allows the programmer to use the familiar syntax of Haskell function definitions to define closed type families.…”
Section: Promoting Functionsmentioning
confidence: 99%