 diff --git i/lib/k3/Core/Optimization.k3 w/lib/k3/Core/Optimization.k3
-index 19f1b1f..6b03345 100644
+index 19f1b1f..ff23368 100644
 --- i/lib/k3/Core/Optimization.k3
 +++ w/lib/k3/Core/Optimization.k3
 @@ -8,8 +8,8 @@ control ManualFusion {

                    (\acc2 -> \v ->
-                     if $.[filterF] v then
-                     ( let k  = $.[gbF1] v in
+                     if ($.[filterF] v) @:{FusionSource, NoBetaReduce} then
+                     ( let k  = ($.[gbF1] v) @:{FusionSource, NoBetaReduce} in
                        let k2 = $.[gbF2] {key: k, value: $.[z1]} in
                        ((acc2.upsert_with {key: k2, value: $.[fz1]}

                    (\acc2 -> \v ->
-                     if $.[filterF] v then
-                     ( let k  = $.[gbF1] v in
+                     if (($.[filterF]) @:FusionSource v) @:NoBetaReduce then
+                     ( let k  = ($.[gbF1] v) @:{FusionSource, NoBetaReduce} in
                        let k2 = $.[gbF2] {key: k, value: $.[z1]} in
                        ((acc2.upsert_with {key: k2, value: $.[fz1]}
