A typing model where names have no fixed declared type and operations inspect object types at runtime.