separate expression processing and assignment in GenerateIntermediate.hs