A better example of what I'm thinking (assuming these interfaces are in java.lang to allow for safe operator overloading):
interface Summable {
static This sum(This v0, This v1);
}
interface Subtractable {
static This difference(This v0, This v1);
}
interface Divisible {
static This quotient(This v0, This v1);
}
interface Mulitiplicable {
static This product(This v0, This v1);
}
interface Number extends Summable, Subtractable, Divisible, Multiplicable;
void <N extends Number> doThings(N v0, N v1){
N sum = v0 + v1;
}