As for fields and other class-level type declarations not using type inference, I guess that&#x27;s a very conscious decision, considering that those constitute an API, which should be carefully changed, if at all. Just having a method return type silently change when you change something in the method body sounds a bit off to me in that context.