object-apply[generic function] object-apply obj arg ...
Gauche: When an expression (obj arg ...) is evaluated
and obj is not a built-in funcallable object (a procedure or
a generic function), Gauche invokes this generic function instead.
The default method is to signal an error ("invalid application"),
but any objects can be made "funcallable" by defining specialized
method.
gosh> (define-method object-apply ((s <string>) (i <integer>)) (string-ref s i))
#<generic object-apply (7)>
gosh> ("abc" 1)
#\b
|