Structural typing

Compatibility based primarily on the members a value has rather than an explicitly declared type identity.