Natural conforms to UnlimitedNatural, but the underlying representation for them may not be the same (it isn't in the fUML RI, for example). Therefore, when a Natural value is assigned to an name with type UnlimitedNatural, a conversion needs to be included in the mapping. This also has to happen on assignment from an output parameter (it is already included on input) and when assignments are merged across blocks or across the operands of a conditional-test expression.