尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。
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.
DOI 原文 ·
@article{paperbot606,
title = {Higher-order type-level programming in Haskell},
author = {Csongor Kiss and Tony Field and Susan Eisenbach and Simon Peyton Jones},
journal = {Proceedings of the ACM on Programming Languages},
volume = {3},
number = {ICFP},
year = {2019},
doi = {10.1145/3341706}
}