Right Types, Wrong Code: Surprising Bugs A Type Checker Catches
A type checker, as its name suggests, catches type mismatches: things like passing a str to a function that expects an int. But to understand your code's types, a type checker also has to understand its structure: control flow, scoping, class hierarchies, and more. This lets it detect a surprisingly wide range of issues that have nothing to do with int vs. str.
Here are five real categories of bugs that Pyrefly catches, none of which are straightforward type mismatches.

