Type Inference¶
The compiler can often deduce types from context, providing static type safety without requiring explicit annotations - separating the benefits of type checking from the burden of type declaration.
Tension Addressed¶
Expressiveness vs. Simplicity; Safety vs. Flexibility
Recognizable As¶
Variables without explicit type annotations that still get compile-time type checking; "let x = 5" where the compiler knows x is an integer; error messages showing inferred types
Canonical Sources¶
Hindley, "The Principal Type-Scheme of an Object in Combinatory Logic" (1969); Milner, "A Theory of Type Polymorphism in Programming" (1978)
Transfers To¶
Schema inference in data systems, automatic format detection, any system that deduces structure from examples
Type inference demonstrates that annotation burden and type safety are separable concerns. This insight transfers to any domain where explicit specification is onerous but structure can be deduced from usage patterns.