X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=c%CE%BBash%2FCLasH%2FUtils.hs;h=51c6ebfc906281c79e74d5becc61fa289a3db143;hb=eab16fafe7a623b5ea669023b91ddee4b1983526;hp=94da85494f2216f75b395b542ed6c07b5362ecbf;hpb=466f80bdde9511508c38e951d208a2a52c90c7da;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git "a/c\316\273ash/CLasH/Utils.hs" "b/c\316\273ash/CLasH/Utils.hs" index 94da854..51c6ebf 100644 --- "a/c\316\273ash/CLasH/Utils.hs" +++ "b/c\316\273ash/CLasH/Utils.hs" @@ -3,6 +3,7 @@ module CLasH.Utils where -- Standard Imports import qualified Maybe import Data.Accessor +import Data.Accessor.Monad.Trans.State as MonadState import qualified Data.Map as Map import qualified Control.Monad as Monad import qualified Control.Monad.Trans.State as State @@ -19,14 +20,14 @@ makeCached :: (Monad m, Ord k) => -> State.StateT s m v -- ^ The resulting value, from the cache or freshly -- computed. makeCached key accessor create = do - cache <- getA accessor + cache <- MonadState.get accessor case Map.lookup key cache of -- Found in cache, just return Just value -> return value -- Not found, compute it and put it in the cache Nothing -> do value <- create - modA accessor (Map.insert key value) + MonadState.modify accessor (Map.insert key value) return value unzipM :: (Monad m) =>