File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ import qualified Control.Lens as Lens
2626import Control.Monad (when , unless )
2727import qualified Control.Monad.IO.Class as Monad (liftIO )
2828import Control.Monad.State.Strict (State )
29- import Data.Bifunctor (bimap )
29+ import Data.Bifunctor (first , second )
3030import Data.Default (def )
3131import Data.Either (lefts ,partitionEithers )
3232import Data.Foldable (traverse_ )
@@ -170,8 +170,10 @@ normalizeStep q binds = do
170170 Just id' -> do
171171 (bound, _) <- MVar. readMVar binds
172172 unless (id' `elemVarSet` bound) $ do
173+ -- immediately mark this work as being done
174+ MVar. modifyMVar_ binds (pure . first (`extendVarSet` id'))
173175 pair <- normalize' id' q
174- MVar. modifyMVar_ binds (pure . bimap ( `extendVarSet` id') (pair: ))
176+ MVar. modifyMVar_ binds (pure . second (pair: ))
175177 normalizeStep q binds
176178 Nothing -> pure ()
177179
You can’t perform that action at this time.
0 commit comments