2019
DOI: 10.1145/3360557
|View full text |Cite
|
Sign up to set email alerts
|

Refinement kinds: type-safe programming with practical type-level computation

Abstract: This work introduces the novel concept of kind refinement, which we develop in the context of an explicitly polymorphic ML-like language with type-level computation. Just as type refinements embed rich specifications by means of comprehension principles expressed by predicates over values in the type domain, kind refinements provide rich kind specifications by means of predicates over types in the kind domain. By leveraging our powerful refinement kind discipline, types in our language are not just used to sta… 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

2021
2021
2024
2024

Publication Types

Select...
2
2

Relationship

0
4

Authors

Journals

citations
Cited by 4 publications
(2 citation statements)
references
References 39 publications
0
2
0
Order By: Relevance
“…To support the algorithmic construction of programs at compile time, multistage programming has been for several mainstream functional programming languages, notably MetaML [39], MetaOCaml [21], and Template Haskell [36]. Our approach is inspired by richer type-level computations that reason about the structure of types and produce custom code constructions [3,7]. The innovation of our work is the integration of multistage programming with MetaDepth [11] is related to our approach to defining a DSL with a "generic" layer supporting nested templates.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…To support the algorithmic construction of programs at compile time, multistage programming has been for several mainstream functional programming languages, notably MetaML [39], MetaOCaml [21], and Template Haskell [36]. Our approach is inspired by richer type-level computations that reason about the structure of types and produce custom code constructions [3,7]. The innovation of our work is the integration of multistage programming with MetaDepth [11] is related to our approach to defining a DSL with a "generic" layer supporting nested templates.…”
Section: Related Workmentioning
confidence: 99%
“…Abstraction and parametrization are among the most significant mechanisms in programming languages to promote modularisation and code reuse [22]. They are present in programming languages from basic function definitions to sophisticated type systems [2] or type-level computations in metaprogramming mechanisms [3,7].…”
Section: Introductionmentioning
confidence: 99%