Objects as Behaviour

The other simplification that type systems use is “Structure”. If two types have roughly the same structure (i.e.: `A = B` if A and B have the field “counter” of type “Int”). This works if you see Objects as Plain Records of Data, and it’s even modular, and sort-of works across machines and languages (ground types are a bit of a problem), but it doesn’t work if you see Objects as Behaviour.

~

Quildreen Motta, Is there Static Typing for a Smalltalk derivative? quora