on master help sign in
Add a few INLINE pragmas for better performance
commit7975895c8cb8a1d92ea9bffa502b9d1797d80294 authorAndrzej Rybczak <andrzej@rybczak.net> dateTue 22 Jun 2021, 00:18 (5 years ago) parent67c1a67
2 files changed+7
src/Effectful/Internal/Env.hs+1 src/Effectful/Internal/Monad.hs+6
src/Effectful/Internal/Env.hs+1
@@ -444,6 +444,7 @@ getLocation (Env fork ref _) = do
444444
445445 ix :: Int -> Int
446446 ix n = n - reifyIndex @e @es - 1
447+{-# INLINE getLocation #-}
447448
448449toAny :: a -> Any
449450toAny = unsafeCoerce
src/Effectful/Internal/Monad.hs+6
@@ -160,24 +160,30 @@ execEffect e0 (Eff m) = unsafeEff $ \es0 -> do
160160
161161getEffect :: e :> es => Eff es (i e)
162162getEffect = unsafeEff $ \es -> getEnv es
163+{-# INLINE getEffect #-}
163164
164165putEffect :: e :> es => i e -> Eff es ()
165166putEffect e = unsafeEff $ \es -> unsafePutEnv e es
167+{-# INLINE putEffect #-}
166168
167169stateEffect :: e :> es => (i e -> (a, i e)) -> Eff es a
168170stateEffect f = unsafeEff $ \es -> unsafeStateEnv f es
171+{-# INLINE stateEffect #-}
169172
170173localEffect :: e :> es => (i e -> i e) -> Eff es a -> Eff es a
171174localEffect f (Eff m) = unsafeEff $ \es -> do
172175 bracket (unsafeStateEnv (\e -> (e, f e)) es)
173176 (\e -> unsafePutEnv e es)
174177 (\_ -> m es)
178+{-# INLINE localEffect #-}
175179
176180readerEffectM :: e :> es => (i e -> Eff es a) -> Eff es a
177181readerEffectM f = unsafeEff $ \es -> getEnv es >>= \e -> unEff (f e) es
182+{-# INLINE readerEffectM #-}
178183
179184stateEffectM :: e :> es => (i e -> Eff es (a, i e)) -> Eff es a
180185stateEffectM f = unsafeEff $ \es -> do
181186 (a, e) <- (\e -> unEff (f e) es) =<< getEnv es
182187 unsafePutEnv e es
183188 pure a
189+{-# INLINE stateEffectM #-}