use ST from base

This commit is contained in:
rhiannon morris 2023-09-19 00:41:47 +02:00
parent ebde478adc
commit 80b1b3581a
8 changed files with 80 additions and 121 deletions

View file

@ -12,7 +12,7 @@ import Data.List
import Data.Maybe
import Data.SnocVect
import Quox.EffExtra
import Quox.ST
import Control.Monad.ST.Extra
import System.File
import System.Path
@ -346,14 +346,14 @@ fromParserPure : NameSuf -> Definitions ->
Eff FromParserPure a ->
Either Error (a, NameSuf, Definitions)
fromParserPure suf defs act = runSTErr $ do
suf <- newRef suf
defs <- newRef defs
suf <- liftST $ newSTRef suf
defs <- liftST $ newSTRef defs
res <- runEff act $ with Union.(::)
[handleExcept (\e => stLeft e),
handleStateSTRef defs,
handleStateSTRef !(newRef [<]),
handleStateSTRef !(liftST $ newSTRef [<]),
handleStateSTRef suf]
pure (res, !(readRef suf), !(readRef defs))
pure (res, !(liftST $ readSTRef suf), !(liftST $ readSTRef defs))
export covering