Re:I learned Haskell in just 15 years
by nextaccountic on Sunday June 23, 2024 @12:25AM
(#40764780)
There's a difference between "doesn't return because it has an infinite loop" and "doesn't return because it threw an exception"
Haskell can't express the difference, but languages with effects, like Koka and F*, can!
The first effect is called div in Koka and the second is called exn, section 2.2 here
https://www.microsoft.com/en-us/research/wp-content/uploads/...
It's fine if the poster above me wishes to change languages. Anyone who chooses to stick with Haskell should get comfortable with the notion that all functions can diverge, and accept that this is fully consistent with the Haskell type system.
Sure they do, at least in Haskell. Bottom inhabits all types.