A role for dependent types in haskell

7Citations
Citations of this article
12Readers
Mendeley users who have this article in their library.

Abstract

Modern Haskell supports zero-cost coercions, a mechanism where types that share the same run-time representation may be freely converted between. To make sure such conversions are safe and desirable, this feature relies on a mechanism of roles to prohibit invalid coercions. In this work, we show how to incorporate roles into dependent types systems and prove, using the Coq proof assistant, that the resulting system is sound. We have designed this work as a foundation for the addition of dependent types to the Glasgow Haskell Compiler, but we also expect that it will be of use to designers of other dependently-typed languages who might want to adopt Haskell's safe coercions feature.

Author supplied keywords

Cite

CITATION STYLE

APA

Weirich, S., Choudhury, P., Voizard, A., & Eisenberg, R. A. (2019). A role for dependent types in haskell. Proceedings of the ACM on Programming Languages, 3(ICFP). https://doi.org/10.1145/3341705

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free