Note how the error message is uninformative. You're trying to override `foo` and then it asks you if you wanted to override `foo`. If it's only a mismatch of attributes and not of the name of the function we should avoid calling the spellchecker and instead error that `foo` can't override `immutable` or `const` with `const shared`.