ghc-9.6.0.20230210: The GHC API
Safe HaskellSafe-Inferred
LanguageHaskell2010

GHC.Utils.Monad.State.Strict

Description

A state monad which is strict in its state.

Synopsis

The State monad

data State s a where Source #

A state monad which is strict in the state s, but lazy in the value a.

See Note [Strict State monad] for the particular notion of strictness and implementation details.

Bundled Patterns

pattern State :: (s -> (# a, s #)) -> State s a 

Instances

Instances details
Applicative (State s) Source # 
Instance details

Defined in GHC.Utils.Monad.State.Strict

Methods

pure :: a -> State s a Source #

(<*>) :: State s (a -> b) -> State s a -> State s b Source #

liftA2 :: (a -> b -> c) -> State s a -> State s b -> State s c Source #

(*>) :: State s a -> State s b -> State s b Source #

(<*) :: State s a -> State s b -> State s a Source #

Functor (State s) Source # 
Instance details

Defined in GHC.Utils.Monad.State.Strict

Methods

fmap :: (a -> b) -> State s a -> State s b Source #

(<$) :: a -> State s b -> State s a Source #

Monad (State s) Source # 
Instance details

Defined in GHC.Utils.Monad.State.Strict

Methods

(>>=) :: State s a -> (a -> State s b) -> State s b Source #

(>>) :: State s a -> State s b -> State s b Source #

return :: a -> State s a Source #

state :: (s -> (a, s)) -> State s a Source #

evalState :: State s a -> s -> a Source #

execState :: State s a -> s -> s Source #

runState :: State s a -> s -> (a, s) Source #

Operations

get :: State s s Source #

gets :: (s -> a) -> State s a Source #

put :: s -> State s () Source #

modify :: (s -> s) -> State s () Source #