Assert kind of each operand.
Cleanup using C99.
Avoid invalid memcpy calls.