summaryrefslogtreecommitdiff
path: root/src/CHAD.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/CHAD.hs')
-rw-r--r--src/CHAD.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/CHAD.hs b/src/CHAD.hs
index 5ae1a07..2513f84 100644
--- a/src/CHAD.hs
+++ b/src/CHAD.hs
@@ -613,14 +613,14 @@ sD1eEnv (DPush d _) = SCons (Const ()) (sD1eEnv d)
freezeRet :: Descr env sto
-> Ret env sto t
- -> (forall env'. Ex env' (D2 t)) -- the incoming cotangent value
+ -> Ex (D1E env) (D2 t) -- the incoming cotangent value
-> Ex (D1E env) (TPair (D1 t) (TEVM (D2E (Select env sto "accum")) (Tup (D2E (Select env sto "merge")))))
freezeRet descr (Ret e0 e1 sub e2) d =
let e2' = weakenExpr (WCopy (wRaiseAbove (bindingsBinds e0) (sD1eEnv descr))) e2
in letBinds e0 $
EPair ext
e1
- (ELet ext d
+ (ELet ext (weakenExpr (sinkWithBindings e0) d)
(EMBind e2'
(EMReturn (d2e (select SAccum descr))
(expandSubenvZeros (select SMerge descr) sub (EVar ext (tTup (d2e (subList (select SMerge descr) sub))) IZ)))))