Concatenation operators

EGL offers two concatenation operators in addition to the plus sign. You can use the following operators for concatenation:
::
This operator (two colons) converts simple, assignment compatible types to STRING and concatenates them; the operator can also append an element to an array. Variable length null elements are ignored; fixed length null elements are considered to be all spaces. If both operands are null, the operator returns null.
?:
This operator behaves the same way as :: except in regard to null values. If any element in the concatenation has a null value, the result will be null. This operator allows the migration of the I4GL || operator.
+
If you use + for concatenation, the left hand side of the expression determines the type of the result. If the left hand side is a numeric variable, the result will be a number; if the left hand side is a text variable, the result will be concatenated text.

Examples

The following code snippet shows varying results from the three operators:

result, var1, var2, var3 STRING?;
result2 INT?;

var1="Sun";
var3="day";
result = var1 :: var2 :: var3;  // result is "Sunday"
result = var1 ?: var2 ?: var3;  // result is null
var1 = "123";
var3 = "456";
result1 = var1 + var2 + var3;  // result is "123456" (STRING)
result2 = var1 + var2 + var3;  // result is 123456 (numeric)

Feedback