also if the result of a Byte operation will cause overflow (eg Byte.MAX + Byte.MAX) should it be promoted to a larger type capable of holding the result depending on the operation (eg + vs * ) (with the exeption in which the result exceeds the largest possible type, eg greater than 64 bits, eg Long.MAX + 1 cannot be promoted to a 128 bit type as no such type exists thus would be required to overflow)