"itsme213" <itsme213 / hotmail.com> wrote > Then, in: > def heat (x /*type_pattern_with_vars*/ ) > ... type_pattern_with_vars could convey, via not-yet-determined syntax, the > following information: > - arg x must support #min, #max > - x.min() is used as the *lo* var in #heat > - x.max() is used as the *hi* var in #heat > - x.cool() is used as the *onHot* var in #heat x.cool is called VIA the *onHot* var in #heat > - x.explode() is used as the *tooHot* var in #heat x.explode is called VIA the *tooHot* var in #heat > That would make the signature very informative. And it is all still based on > duck-ish respond_to? semantics rather than on classes. It would *not* > duplicate any work since the implementer of route() would *not* have to do > any the following: > lo = x.min() > hi = x.max() > onHot = x.method(:cool) > tooHot = x.method(:explode) Correct.