Trying moving the widening conversions all into the PosInt companion. Seems to work.