{'fraction_non_alphanumeric': 0.020905923344947737, 'fraction_numerical': 0.0023228803716608595, 'mean_word_length': 4.944827586206896, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Refining the Delta Debugging of Type Errors

Understanding the cause of a type error can be challenging; for over 30 years, researchers have proposed many sophisticated solutions that hardly made it into practice. Previously we presented a simple method for locating the cause of a type error in a functional program. Our method applies Zeller’s isolating delta debugging algorithm, using the compiler as a black box: Simple line-based program slicing searches for a type error location. To improve speed, we incorporated a pre-processing stage for handling parse errors. In this paper, we note that the method needs refining. We introduce a new algorithm that replaces the previous pre-processing of parse errors with on-request handling. We implemented the algorithm and evaluated it for Haskell and OCaml programs to demonstrate that it is language agnostic.