Affiliation:
1. Imperial College London, UK
2. Microsoft Research, UK
Abstract
Type family applications in Haskell must be fully saturated. This means that all type-level functions have to be first-order, leading to code that is both messy and longwinded. In this paper we detail an extension to GHC that removes this restriction. We augment Haskell’s existing type arrow, |->|, with an
unmatchable
arrow, | >|, that supports partial application of type families without compromising soundness. A soundness proof is provided. We show how the techniques described can lead to substantial code-size reduction (circa 80%) in the type-level logic of commonly-used type-level libraries whilst simultaneously improving code quality and readability.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference29 articles.
1. Maximilian C. Bolingbroke. 2011. Constraint Kinds for GHC. http://blog.omega- prime.co.uk/2011/09/10/constraint- kindsfor- ghc/ Maximilian C. Bolingbroke. 2011. Constraint Kinds for GHC. http://blog.omega- prime.co.uk/2011/09/10/constraint- kindsfor- ghc/
2. Associated type synonyms
3. Levity polymorphism
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Partial type constructors in practice;Proceedings of the 15th ACM SIGPLAN International Haskell Symposium;2022-09-06
2. Graded monads and type-level programming for dependence analysis;Proceedings of the 14th ACM SIGPLAN International Symposium on Haskell;2021-08-18
3. Chesskell: a two-player game at the type level;Proceedings of the 14th ACM SIGPLAN International Symposium on Haskell;2021-08-18
4. A dependently typed calculus with polymorphic subtyping;Science of Computer Programming;2021-08
5. Describing microservices using modern Haskell (experience report);Proceedings of the 13th ACM SIGPLAN International Symposium on Haskell;2020-08-09