@@ -167,7 +167,7 @@ firstOrderMatch ctxt pat term = match pat term IntMap.empty
167167 match :: Term -> Term -> IntMap Term -> Maybe (IntMap Term )
168168 match x y m =
169169 case (unwrapTermF x, unwrapTermF y) of
170- (FTermF ( Variable (ecVarIndex -> i) ), _) | IntSet. member i ixs ->
170+ (Variable (ecVarIndex -> i), _) | IntSet. member i ixs ->
171171 case my' of
172172 Nothing -> Just m'
173173 Just y' -> if alphaEquiv y y' then Just m' else Nothing
@@ -260,7 +260,7 @@ scMatch sc ctxt pat term =
260260 where
261261 go js x =
262262 case unwrapTermF x of
263- FTermF ( Variable ec)
263+ Variable ec
264264 | IntSet. member (ecVarIndex ec) ixs -> Just (ecVarIndex ec, js)
265265 | otherwise -> Nothing
266266 App t (unwrapTermF -> LocalVar j)
@@ -816,6 +816,7 @@ rewriteSharedTermTypeSafe sc ss t0 =
816816 _ -> App <$> rewriteAll e1 <*> pure e2
817817 Lambda pat t e -> Lambda pat t <$> rewriteAll e
818818 Constant {} -> return tf
819+ Variable {} -> return tf
819820 _ -> return tf -- traverse rewriteAll tf
820821
821822 rewriteFTermF :: (? cache :: Cache IO TermIndex Term , ? annSet :: IORef (Set a )) =>
@@ -843,7 +844,6 @@ rewriteSharedTermTypeSafe sc ss t0 =
843844 NatLit {} -> return ftf -- doesn't matter
844845 ArrayValue t es -> ArrayValue t <$> traverse rewriteAll es
845846 StringLit {} -> return ftf
846- Variable {} -> return ftf
847847
848848 rewriteTop :: (? cache :: Cache IO TermIndex Term , ? annSet :: IORef (Set a )) =>
849849 Term -> IO Term
@@ -1018,6 +1018,7 @@ doHoistIfs sc ss hoistCache = go
10181018
10191019 goF t (LocalVar _) = return (t, [] )
10201020 goF t (Constant {}) = return (t, [] )
1021+ goF t (Variable {}) = return (t, [] )
10211022
10221023 goF _ (FTermF ftf) = do
10231024 (ftf', conds) <- runWriterT $ traverse WriterT $ (fmap go ftf)
0 commit comments