OTOH sometimes you ought to think about it the way the type system does, because its own limitations reflect those of other users of your code. The biggest one is consumers of your (public) interface, whose code shouldn&#x27;t fail to compile if you merely change the implementation to use an additional struct member.