Because instead of using types you can use proofs. And have the compiler prove things about your code.
You then may not need such complex higher order types in typed code.
And you could retrofit this to JS, Ruby, C so you don’t need to learn new languages to get excellent type safety.
For example assert that a number is in the 0-100 range and have the proven at compile time. Not just unit tested. It would be amazing.
Because instead of using types you can use proofs. And have the compiler prove things about your code.
You then may not need such complex higher order types in typed code.
And you could retrofit this to JS, Ruby, C so you don’t need to learn new languages to get excellent type safety.
For example assert that a number is in the 0-100 range and have the proven at compile time. Not just unit tested. It would be amazing.