The author claims that by removing some type inference (lambdas and generic instantiation) you can reduce the amount of code required to implement type-checking.
The author claims that by removing some type inference (lambdas and generic instantiation) you can reduce the amount of code required to implement type-checking.
You probably need to annotate recursive function return values. I know in some languages like Swift and Kotlin, at least in some cases this is required; and other languages have you annotate every function’s return value (or at least, every function which isn’t a lambda expression). So IMO it’s not even as much of a drawback as the other two.