Basic destructive-op detection, will want a more general approach at some point
Tiny cleanup of union parsing