Brandon Hewer
Quotient Haskell: Lightweight Quotient Types for All
Hewer, Brandon; Hutton, Graham
Abstract
Subtypes and quotient types are dual type abstractions. However, while subtypes are widely used both explicitly and implicitly, quotient types have not seen much practical use outside of proof assistants. A key difficulty to wider adoption of quotient types lies in the significant burden of proof-obligations that arises from their use. In this article, we address this issue by introducing a class of quotient types for which the proof-obligations are decidable by an SMT solver. We demonstrate this idea in practice by presenting Quotient Haskell, an extension of Liquid Haskell with support for quotient types.
Citation
Hewer, B., & Hutton, G. (2024). Quotient Haskell: Lightweight Quotient Types for All. Proceedings of the ACM on Programming Languages, 8(POPL), 785-815. https://doi.org/10.1145/3632869
Journal Article Type | Article |
---|---|
Conference Name | ACM SIGPLAN Symposium on Principles of Programming Languages |
Acceptance Date | Nov 7, 2023 |
Online Publication Date | Jan 5, 2024 |
Publication Date | Jan 5, 2024 |
Deposit Date | Nov 8, 2023 |
Publicly Available Date | Jan 11, 2024 |
Journal | Proceedings of the ACM on Programming Languages |
Electronic ISSN | 2475-1421 |
Publisher | Association for Computing Machinery (ACM) |
Peer Reviewed | Peer Reviewed |
Volume | 8 |
Issue | POPL |
Article Number | 27 |
Pages | 785-815 |
DOI | https://doi.org/10.1145/3632869 |
Keywords | quotient types, refinement types, static verification |
Public URL | https://nottingham-repository.worktribe.com/output/27078391 |
Publisher URL | https://dl.acm.org/journal/pacmpl |
Additional Information | Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the owner/author(s). © 2024 Copyright held by the owner/author(s). |
Files
3632869
(313 Kb)
PDF
Licence
https://creativecommons.org/licenses/by/4.0/
Publisher Licence URL
https://creativecommons.org/licenses/by/4.0/
Copyright Statement
Copyright © 2024 Owner/Author
This work is licensed under a Creative Commons Attribution 4.0 International License.
You might also like
Calculating Compilers Effectively (Functional Pearl)
(2024)
Presentation / Conference Contribution
Beyond Trees: Calculating Graph-Based Compilers (Functional Pearl)
(2024)
Journal Article
Programming language semantics: It’s easy as 1,2,3
(2023)
Journal Article
Monadic compiler calculation (functional pearl)
(2022)
Journal Article
Calculating dependently-typed compilers (functional pearl)
(2021)
Journal Article
Downloadable Citations
About Repository@Nottingham
Administrator e-mail: discovery-access-systems@nottingham.ac.uk
This application uses the following open-source libraries:
SheetJS Community Edition
Apache License Version 2.0 (http://www.apache.org/licenses/)
PDF.js
Apache License Version 2.0 (http://www.apache.org/licenses/)
Font Awesome
SIL OFL 1.1 (http://scripts.sil.org/OFL)
MIT License (http://opensource.org/licenses/mit-license.html)
CC BY 3.0 ( http://creativecommons.org/licenses/by/3.0/)
Powered by Worktribe © 2025
Advanced Search