How to Choose Between Hindley-Milner and Bidirectional Typing
Summary
The article argues that Hindley-Milner and bidirectional typing are not a strict dichotomy and that generics and unification drive the design choice. It demonstrates how bidirectional typing can incorporate unification and offers concrete Rust-like code examples to illustrate inference and checking. The piece is a practical guide for language designers deciding whether to require generics and how to implement type checking.