diff options
Diffstat (limited to 'src/AST/Count.hs')
-rw-r--r-- | src/AST/Count.hs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/AST/Count.hs b/src/AST/Count.hs index 31720a5..a928743 100644 --- a/src/AST/Count.hs +++ b/src/AST/Count.hs @@ -150,12 +150,12 @@ deleteUnused (_ `SCons` env) (OccPush occenv (Occ _ count)) k = unsafeWeakenWithSubenv :: Subenv env env' -> Expr x env t -> Expr x env' t unsafeWeakenWithSubenv = \sub -> - subst (\x t i -> case sinkWithSubenv i sub of + subst (\x t i -> case sinkViaSubenv i sub of Just i' -> EVar x t i' Nothing -> error "unsafeWeakenWithSubenv: Index occurred that was subenv'd away") where - sinkWithSubenv :: Idx env t -> Subenv env env' -> Maybe (Idx env' t) - sinkWithSubenv IZ (SEYes _) = Just IZ - sinkWithSubenv IZ (SENo _) = Nothing - sinkWithSubenv (IS i) (SEYes sub) = IS <$> sinkWithSubenv i sub - sinkWithSubenv (IS i) (SENo sub) = sinkWithSubenv i sub + sinkViaSubenv :: Idx env t -> Subenv env env' -> Maybe (Idx env' t) + sinkViaSubenv IZ (SEYes _) = Just IZ + sinkViaSubenv IZ (SENo _) = Nothing + sinkViaSubenv (IS i) (SEYes sub) = IS <$> sinkViaSubenv i sub + sinkViaSubenv (IS i) (SENo sub) = sinkViaSubenv i sub |