Software abstractions don’t inherently reflect the real world. — Most people, even children, can definitively answer this question. Yes, a square is a subtype of a rectangle; ergo, it is a rectangle with all sides equal. So then, why does this question give experienced software developers pause? We are here to learn a cautionary tale that software abstractions are…