@@ -766,19 +766,20 @@ substAlt n repl (SucCase n' sc)
766766 | otherwise = SucCase n' (substSC n repl sc)
767767substAlt n repl (DefaultCase sc) = DefaultCase (substSC n repl sc)
768768
769+-- mkForce n' n t updates the tree t under the assumption that
770+-- n' = force n (so basically updating n to n')
769771mkForce :: Name -> Name -> SC -> SC
770772mkForce = mkForceSC
771773 where
772774 mkForceSC n arg (Case x alts) | x == arg
773− = ProjCase (forceArg n) $ map (mkForceAlt n arg) alts
775+ = Case n $ map (mkForceAlt n arg) alts
774776
775777 mkForceSC n arg (Case x alts)
776778 = Case x (map (mkForceAlt n arg) alts)
777779
778780 mkForceSC n arg (ProjCase t alts)
779− = ProjCase (forceTm n arg t) $ map (mkForceAlt n arg) alts
781+ = ProjCase t $ map (mkForceAlt n arg) alts
780782
781− mkForceSC n arg (STerm t) = STerm (forceTm n arg t)
782783 mkForceSC n arg c = c
783784
784785 mkForceAlt n arg (ConCase cn t args rhs)
@@ -792,7 +793,5 @@ mkForce = mkForceSC
792793 mkForceAlt n arg (DefaultCase rhs)
793794 = DefaultCase (mkForceSC n arg rhs)
794795
795− forceTm n arg t = subst arg (forceArg n) t
796+ forceTm n arg t = subst n arg t
796797
797− forceArg n = App (App (App (P Ref (sUN "Force") Erased) Erased) Erased)
798− (P Bound n Erased)