A single issue in the code can cause errors from multiple stages to be reported. There are cases where this is redundant, and only one error from a single stage is enough.
For example, if a variable is not defined, only the "Cannot find name" diagnostic should be reported about it, without the Checker complaining about an unknown type later.