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
26
26
import Control.Monad (when , unless )
27
27
import qualified Control.Monad.IO.Class as Monad (liftIO )
28
28
import Control.Monad.State.Strict (State )
29
- import Data.Bifunctor (bimap )
29
+ import Data.Bifunctor (first , second )
30
30
import Data.Default (def )
31
31
import Data.Either (lefts ,partitionEithers )
32
32
import Data.Foldable (traverse_ )
@@ -170,8 +170,10 @@ normalizeStep q binds = do
170
170
Just id' -> do
171
171
(bound, _) <- MVar. readMVar binds
172
172
unless (id' `elemVarSet` bound) $ do
173
+ -- immediately mark this work as being done
174
+ MVar. modifyMVar_ binds (pure . first (`extendVarSet` id'))
173
175
pair <- normalize' id' q
174
- MVar. modifyMVar_ binds (pure . bimap ( `extendVarSet` id') (pair: ))
176
+ MVar. modifyMVar_ binds (pure . second (pair: ))
175
177
normalizeStep q binds
176
178
Nothing -> pure ()
177
179
You can’t perform that action at this time.
0 commit comments