High-level error messages for modules through diffing
Modules are one of the most complex features of ML languages. This complexity is reflected in error messages. Whenever two module types are mismatched, it is hard to identify and report the exact source of the error. Consequently, typecheckers often resort to printing the whole module types, and hope that the human user will navigate the sea of definitions. We propose to improve module error messages by coupling classical typechecking with a diffing algorithm. The typechecker deals with the gritty details of the ML module system whereas the diffing algorithm summarizes the error through a higher level view. The large literature on diffing algorithms allows us to pick and choose the exact algorithm adapted for signatures, functors applications, submodules, etc.
High-level error messages for modules through diffing (ml2020-paper75.pdf) | 134KiB |
Thu 27 Aug Times are displayed in time zone: Eastern Time (US & Canada) change
11:30 - 13:10 | |||
11:30 25mTalk | Tracking injectivity and nominality beyond abstraction ML Jacques GarrigueNagoya University Media Attached File Attached | ||
11:55 25mTalk | Quantified Applicatives – API design for type-inference constraints ML Media Attached File Attached | ||
12:20 25mTalk | High-level error messages for modules through diffing ML Media Attached File Attached | ||
12:45 25mTalk | The Virtues of Semi-Explicit Polymorphism ML Frank EmrichUniversity of Edinburgh, UK, Sam LindleyHeriot-Watt University, UK / The University of Edinburgh, UK, Jan StolarekUniversity of Edinburgh, UK Media Attached File Attached |