in reply to Re^2: isa() on any scalar
in thread isa() on any scalar

This is reminiscent of Java interfaces.

That's not what I was getting at. I didn't mean to check for every method that the object "should" have every time you take it in. Notice what I said in my original post:

I like to use can to check if an object has the methods I am going to call on it

I have highlighted the point you seem to have missed. I only check for the methods I am actually going to use. This way, someone can implement only the part of the interface that they need to, instead of the whole thing. Like I said in a later reply to the OP, it's about flexibility for the end user.