structural typing
major class of type system, in which type compatibility and equivalence are determined by the type's actual structure or definition, and not by other characteristics such as its name or place of declaration
duck typing
style of dynamic, structural typing with lazy checking of objects' attributes