3 ms·
Locking down an API is a critical feature of a type system, though, and beyond that, there are absolutely language extensions in Haskell that are not inferrable
by jolux 6y ago
Locking down an API is a critical feature of a type system, though, and beyond that, there are absolutely language extensions in Haskell that are not inferrable, in addition to polymorphic recursion. OCaml is the same way: the inference is very good, but not total.
As for being a reduction to the expressiveness of the language, I think Haskell is proof that you can have annotations without reducing the expressiveness of the language. Type annotations in Haskell and Idris don’t even interfere with value-level syntax!