![Thumbnail](/bitstream/handle/20.500.11850/670925/Gray_Gavin.pdf.jpg?sequence=7&isAllowed=y)
Open access
Author
Date
2024Type
- Master Thesis
ETH Bibliography
yes
Altmetrics
Abstract
Many modern programming languages use a form of ad-hoc polymorphism as a language abstraction. Type classes, popularized by Haskell, have found space in other programming languages to join the semantics of ad-hoc and parametric polymorphism. Type class resolution is a complex black-box process implemented as a backtracking search across program types. When this search fails, compilers struggle to provide helpful diagnostics and frustrated developers have difficulty debugging complex type class errors. Textual diagnostics are fundamentally reductive and we propose an interactive interface to facilitate localization of type class errors. Our tool, Argus, is an
interactive debugger for Rust traits available as a VSCode extension. For 80% of tests in a community curated test suite of difficult Rust trait errors, Argus is able to localize the root error in at most ten interface interactions. Show more
Permanent link
https://doi.org/10.3929/ethz-b-000670925Publication status
publishedContributors
Examiner: Crichton, Will
Publisher
ETH ZurichOrganisational unit
03653 - Müller, Peter / Müller, Peter
More
Show all metadata
ETH Bibliography
yes
Altmetrics