If A depends on B and B depends on C, all as runtime
dependencies, and C changes, there is no change that
can happen in C that will change the result of running
the checker on A.
This could change in the future in two ways:
1. If we introduce inference of return types, then we
need to infer and check the types for A again. This
may be an argument for not introducing inference of
return types (only of patterns and guards)
2. We will need to track "type exports" once we introduce
type aliases