What's the difference between that work decades ago and the work from Stephen Dolan in 2016 cited in this post? Like, what's the thing that is demonstrated now that we didn't have like 30 years ago?
As it turns out, Dolan's main contribution wasn't the algorithm (which is overly complex, as proven by Parreaux's simpler implementation), but the type language - the insight that most subtyping constraints can be removed and/or simplified to simple union and intersection types, assuming certain simplifications of the type system (namely: positive/negative types, and distributivity of union/intersection over function types).
https://lptk.github.io/programming/2020/03/26/demystifying-m...
https://dl.acm.org/doi/10.1145/3409006
Parreaux is continuing to work on this problem, and has since removed one of the assumptions/simplifications (positive/negative types) in his work on MLstruct
juancn•7mo ago
Makes reading code a lot easier if you know what you're doing.
jjice•7mo ago
layla5alive•7mo ago
exac•7mo ago
mrkeen•7mo ago
juancn•7mo ago
Code is read a lot more than is written in my experience, so saving time writing it is optimizing for the wrong thing.
Languages with much inference for me REQUIRE IDEs that help you see what the code is actually doing. Forget about using a text editor or reading a diff and getting what the implications are.
afiori•7mo ago