void ArrayInt :: assign(ExprInt) ;
void ArrayFloat :: assign(ExprFloat) ;
void ArrayDouble :: assign(ExprDouble) ;
...
Eg,
a.assign(b) ; // a = b
b.assign(c) ; // b = c
The argument of assign must conform with the array being assigned.
c.assign(d) ; // ILLEGAL
a.assign(x.plus(y)) ; // forall (x, y) a(x, y) = x + y ;