|
This commit improves the error messages for ill-typed functor applications and inclusion between functor types. It does so by computing a diff between the expected and the provided types, and find an application that minimizes the error. The set of changes also paves the way for better diff for inclusion checks between signatures.
* Implement a generic and variadic Wagner–Fischer algorithm for computing locally optimal
paths.
* Compute a full error tree for module type inclusion and equality errors
* Improve the error message for module type equality
* Expand the error message at the module level by using a diffing algorithm to
analyze erroneous functor multi-applications or inclusions using Levenshtein distance.
Co-authored-by: Florian Angeletti <florian.angeletti@inria.fr>
Co-authored-by: octachron <octa@polychoron.fr>
|