4 ms·
Tangentially related. (I thought of this when thinking about what the OP said about rust forcing you to hardcode your function's types prevents spooky action at
by ChadNauseam 4y ago
Tangentially related. (I thought of this when thinking about what the OP said about rust forcing you to hardcode your function's types prevents spooky action at a distance.)
In Unison [0], when you change a function's type, it computes the number of call sites of that function (and callers of the callers, etc), and gives you a "todo-list" of functions you'll need to fix. As you go through the todo-list, the list of functions to fix only ever gets smaller. It can do this because the compiler knows the state of the codebase before and after your change. That means it can see the difference between "you changed a function's type, which broke the callers" and "you changed how you're calling a function, and your change didn't typecheck".
[0]: https://www.unison-lang.org/ https://www.unison-lang.org/