1. A method of resolving a target expression comprising an operator and at least one operand, comprising the steps of: determining as a target type a most encompassed type from among a first set of types, where said first set of types comprises all resulting types of all first variant expressions, where each of said first variant expressions comprises said target expression with at least one of said operands replaced by widening type conversion, if said first set is not empty; if said first set is empty, determining as said target type a most encompassing type from among a second set of types, where said second set of types comprises all resulting types of all second variant expressions, where each of said second variant expressions comprises said target expression with at least one of said operands replaced by type conversion.