Michael Lazzaro asked: > foo $a, $b, $c, $d; # how many args? Damian Conway wrote: > Yep. Can't be known unless predeclared and hence compile-time discernible. > And methods can't be discerned in the presence of run-time dispatch.
Is that not the purpose of an interface? That is, to specify at compile time that a given object conforms to a particular set of method signatures? The method is still resolved for dispatch at runtime, depending on the object type, multimethod arguments, etc. At compile time we don't know which method will be called, but, thanks to the interface, we do know what argument(s) it will be expecting. A