Closed jamescheney closed 7 years ago
I think the code in the assignment case
do p <- storeDerefM l
(rho2, e2, t2') <- bwdSliceM p t2
(rho1, e1, t1') <- bwdSliceM (toValue l) t1
storeUpdateHoleM l
should be
do p <- storeDerefM l
storeUpdateHoleM l
(rho2, e2, t2') <- bwdSliceM p t2
(rho1, e1, t1') <- bwdSliceM (toValue l) t1
since the first version deletes any demand on l resulting from slicing the subtraces.
Yup, that was the cause. Fixed in references
branch.
In this example the slice retains initial values for a and c but not b, so there may be a bug in the slicing of assignments.