[Git][ghc/ghc][master] compiler: remove unused lazy state monad
Marge Bot (@marge-bot)
gitlab at gitlab.haskell.org
Tue Sep 13 14:30:02 UTC 2022
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
dc6af9ed by Cheng Shao at 2022-09-13T10:29:45-04:00
compiler: remove unused lazy state monad
- - - - -
2 changed files:
- − compiler/GHC/Utils/Monad/State/Lazy.hs
- compiler/ghc.cabal.in
Changes:
=====================================
compiler/GHC/Utils/Monad/State/Lazy.hs deleted
=====================================
@@ -1,78 +0,0 @@
-{-# LANGUAGE DeriveFunctor #-}
-{-# LANGUAGE UnboxedTuples #-}
-{-# LANGUAGE PatternSynonyms #-}
-
--- | A lazy state monad.
-module GHC.Utils.Monad.State.Lazy
- ( -- * The State monda
- State(State)
- , state
- , evalState
- , execState
- , runState
- -- * Operations
- , get
- , gets
- , put
- , modify
- ) where
-
-import GHC.Prelude
-
-import GHC.Exts (oneShot)
-
--- | A state monad which is lazy in the state.
-newtype State s a = State' { runState' :: s -> (# a, s #) }
- deriving (Functor)
-
-pattern State :: (s -> (# a, s #))
- -> State s a
-
--- This pattern synonym makes the monad eta-expand,
--- which as a very beneficial effect on compiler performance
--- See #18202.
--- See Note [The one-shot state monad trick] in GHC.Utils.Monad
-pattern State m <- State' m
- where
- State m = State' (oneShot $ \s -> m s)
-
-instance Applicative (State s) where
- pure x = State $ \s -> (# x, s #)
- m <*> n = State $ \s -> case runState' m s of
- (# f, s' #) -> case runState' n s' of
- (# x, s'' #) -> (# f x, s'' #)
-
-instance Monad (State s) where
- m >>= n = State $ \s -> case runState' m s of
- (# r, s' #) -> runState' (n r) s'
-
-state :: (s -> (a, s)) -> State s a
-state f = State $ \s -> case f s of
- (r, s') -> (# r, s' #)
-
-get :: State s s
-get = State $ \s -> (# s, s #)
-
-gets :: (s -> a) -> State s a
-gets f = State $ \s -> (# f s, s #)
-
-put :: s -> State s ()
-put s' = State $ \_ -> (# (), s' #)
-
-modify :: (s -> s) -> State s ()
-modify f = State $ \s -> (# (), f s #)
-
-
-evalState :: State s a -> s -> a
-evalState s i = case runState' s i of
- (# a, _ #) -> a
-
-
-execState :: State s a -> s -> s
-execState s i = case runState' s i of
- (# _, s' #) -> s'
-
-
-runState :: State s a -> s -> (a, s)
-runState s i = case runState' s i of
- (# a, s' #) -> (a, s')
=====================================
compiler/ghc.cabal.in
=====================================
@@ -795,7 +795,6 @@ Library
GHC.Utils.Misc
GHC.Utils.Monad
GHC.Utils.Monad.State.Strict
- GHC.Utils.Monad.State.Lazy
GHC.Utils.Outputable
GHC.Utils.Panic
GHC.Utils.Panic.Plain
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/dc6af9ed87e619d754bfc385df931c81cba6d93a
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/dc6af9ed87e619d754bfc385df931c81cba6d93a
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20220913/60baa087/attachment-0001.html>
More information about the ghc-commits
mailing list