This seems to be to be nothing more than applying the same
idea behind objects and interfaces to other types... if all
variables were typed Object and you had:
interface Int {}
interface String {}
void whatever(Int lineno, String rawdata) {}
it'd be the same thing, would it not?