: These allow you to "tack on" new methods to existing classes without actually modifying the original class's source code, which is great for rapid prototyping.
: Unlike many languages that only choose which method to run based on the caller , multiple dispatch selects the correct method based on the types of all arguments provided at runtime.
Some languages integrate specialized tasks directly into their basic syntax: