Common interface to check and maybe change the type of expression.
All instances of Expression type implements this interface to check and maybe change the arguments adequate to the given or higher type.
Checks the second argument whether it is matching to the current expression type
which matches to the accu.
If the val2 provides another type, either it is converted to the current expression type
or another (higher) expression type is taken and the accumulator value is converted.
accu - The accumulator maybe changed..
val2 - the second operand is tested, may be changed.
type of the expression. Often it is this, sometimes it is an higher type.