This allows separation of concerns and makes the type system extensible. If the type does not implement the necessary API, it falls back to using instanceof.