TIL that when a class attribute is annotated as `typing.Final`, `mypy` will treat it as an error if an instance attribute of the same name is assigned at some point:
«There can be at most one final declaration per module or class for a given attribute. There can’t be separate class-level and instance-level constants with the same name.»
https://mypy.readthedocs.io/en/stable/final_attrs.html#details-of-using-final