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 AugDisplayed time zone: Eastern Time (US & Canada) change
11:30 - 13:10 | |||
11:30 25mTalk | Tracking injectivity and nominality beyond abstraction ML Jacques Garrigue Nagoya 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 Emrich University of Edinburgh, UK, Sam Lindley Heriot-Watt University, UK / The University of Edinburgh, UK, Jan Stolarek University of Edinburgh, UK Media Attached File Attached |