#1: Performance improvement: Got rid of interim list creation, now directly transforming arrays
#2: No longer propagating binary operations on primitive values in the backwards solver since primitive data types cannot alias anyway