print expr can take multiple concat'd exprs

in prepration for C backend compiler.
Also, made the unparser more correct with type conversions,
at the cost of some verboseness. Should revisit sometime