Statically typed programming language with type inference