diff options
Diffstat (limited to 'src/CHAD.hs')
-rw-r--r-- | src/CHAD.hs | 4 |
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))))) |