One implication of this is that in a language with a proper implementation of these concepts, you don't need to have both typeof and instanceof operators, you can use the instanceof operators to query the type of any value (e.g. 5 instanceof Number would produce the true boolean value). Another useful consequence is that you would be able to redefine operators such as addition or multiplication on existing types to extend the behavior of the language. Implementing core language operators as methods means we're adding an additional layer of indirection which a compiler will have to work to optimize away, and may not be able to optimize away fully.