One use of a function assignment statement [which swaps the original value with the function's return value] achieves the effect of the usual assignment statement "x:=y" in … (y:item) returns z:item ensures y=#y and z=y [By using replica, the programmer knows there is a run-time cost. Not all data types need to have a replica function defined.]
Google-1
Google-2
Copyright clearance needed for quotation.