First part of Common Type System homework