Por curiosidade, existem idiomas que permitem definir aritmética nos tipos para criar novos tipos? Algo como: interface A { void a(); void b(); } interface B { void b(); void c(); } interface C = A & B; // has b() interface D = A | B; // has a(), b() and c() interface E = (A & B) ^...