Abstract
Recent versions of the Haskell compiler GHC have a number of advanced features that allow many idioms from dependently typed programming to be encoded. We describe our experiences using this "dependently typed Haskell" to construct a performance-critical library that is a key component in a number of verification tools. We have discovered that it can be done, and it brings significant value, but also at a high cost. In this experience report, we describe the ways in which programming at the edge of what is expressible in Haskell's type system has brought us value, the difficulties that it has imposed, and some of the ways we coped with the difficulties.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference28 articles.
1. * Proof by Reflection
2. François Bobot Jean-Christophe Filliâtre Claude Marché and Andrei Paskevich. 2011. Why3: Shepherd Your Herd of Provers. In Boogie 2011: First International Workshop on Intermediate Verification Languages. Wrocław Poland 53–64. https://hal.inria.fr/hal-00790310 . François Bobot Jean-Christophe Filliâtre Claude Marché and Andrei Paskevich. 2011. Why3: Shepherd Your Herd of Provers. In Boogie 2011: First International Workshop on Intermediate Verification Languages. Wrocław Poland 53–64. https://hal.inria.fr/hal-00790310 .
3. Quantified class constraints
4. Safe zero-cost coercions for Haskell
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Dependently-Typed Programming with Logical Equality Reflection;Proceedings of the ACM on Programming Languages;2023-08-30
2. Trustworthy Runtime Verification via Bisimulation (Experience Report);Proceedings of the ACM on Programming Languages;2023-08-30
3. Eliminating bugs with dependent Haskell (experience report);Proceedings of the 13th ACM SIGPLAN International Symposium on Haskell;2020-08-09
4. Heterogeneous binary random-access lists;Journal of Functional Programming;2020