Heuristics-based Type Error Diagnosis for Haskell: The case of GADTs and local reasoning

Publication date

2020-09-02

Authors

Burgers, Joris
Hage, JurriaanISNI 0000000356203424
Serrano Mena, A.ISNI 0000000434518529

Editors

Chitil, Olaf

Advisors

Supervisors

Document Type

Part of book
Open Access logo

License

taverne

Abstract

Helium is a Haskell compiler designed to provide programmer friendly type error messages. It employs specially designed heuristics that work on a type graph representation of the type inference process. In order to support existentials and Generalized Algebraic Data Types (GADTs) in Helium, we extend the type graphs of Helium with facilities for local reasoning. We have translated the original Helium heuristics to this new setting, and define a number of GADT-specific heuristics that help diagnose Helium programs that employ GADTs.

Keywords

generalized algebraic data types, Haskell, type error diagnosis, type graphs, Taverne, Human-Computer Interaction, Computer Networks and Communications, Computer Vision and Pattern Recognition, Software

Citation

Burgers, J, Hage, J & Serrano, A 2020, Heuristics-based Type Error Diagnosis for Haskell : The case of GADTs and local reasoning. in O Chitil (ed.), IFL 2020: Proceedings of the 32nd Symposium on Implementation and Application of Functional Languages. ACM International Conference Proceeding Series, Association for Computing Machinery, New York, pp. 33-43, 32nd Symposium on Implementation and Application of Functional Languages, IFL 2020, Virtual, Online, United Kingdom, 2/09/20. https://doi.org/10.1145/3462172.3462189, conference