Unsigned numeric functions take unsigned intergers as arguments and returns the same integer type. The result of the carry and borrow functions cannot be implicitly cast to a real. For that you can use an explicit Single or Double type cast.
borrow(Integer, Integer) Subtract the unsigned arguments and return one if if underflow occured. Otherwise zero is returned. In a condition the borrow function is equivalent to the unsigned less than (_<) comparator. The Borrow function is used to perform multiple precision subtraction and to check for underflow on unsigned subtraction. carry(Integer, Integer) Add the unsigned arguments and return one if a carry occured. Otherwise zero is returned. The Carry function is used to perform multiple precision addition and to check for overflow on unsigned addition. positive(Integer) Zero extend the argument to a wider integer or real type. Cell = positive( parcel{ Byte * 5 }) Sign extend the variable Byte to a Parcel. Zero extend the parcel{} result to a Cell. Cell = parcel{ positive( Byte _* 5 }) Zero extend the variable Byte to a Parcel. Sign extend the parcel{} result to a Cell. Fault: Any real value in the argument cannot be implicitly cast to an integer.