A method is duck-typed if it has the same signature as another method, neither of which overrides a similarly typed method of a common parent.
#value: is understood in Pharo Smalltalk by both blocks and symbols.
A simple algorithm to identify which methods are newly introduced by each class in the Pharo Smalltalk system shows that over 10,000 methods are introduced at the roots of separate hierarchies. Are all of these methods truly duck-typed?
This project would dig deeper into duck typing in Smalltalk (or another dynamically typed language) to determine how prevalent duck typing really is, and how it is used in practice.