Write a Blog >>
ICFP 2020
Thu 20 - Fri 28 August 2020
Thu 27 Aug 2020 12:20 - 12:45 at ML - Session 1

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