Support out r,r form
Move assignment to a separate statement type.
Flatten assignments properly.
Set type when splitting a binary operation with 3 or more parts.