funes-0.1.0.0
Safe HaskellNone
LanguageHaskell2010

Nes.Internal.MonadState

Synopsis

Definition

class Monad m => MonadState s (m :: Type -> Type) where Source #

Very similar to mtl's StateMonad, however we don't use functional dependencies to resolve the type of the state. Monads that have multiple instances for this class will have to use explicit type application

Methods

get :: m s Source #

set :: s -> m () Source #

Instances

Instances details
MonadState APUState (APU r) Source # 
Instance details

Defined in Nes.APU.Monad

Methods

get :: APU r APUState Source #

set :: APUState -> APU r () Source #

MonadState BusState (Bus r) Source # 
Instance details

Defined in Nes.Bus.Monad

Methods

get :: Bus r BusState Source #

set :: BusState -> Bus r () Source #

MonadState BusState (CPU r) Source # 
Instance details

Defined in Nes.CPU.Monad

Methods

get :: CPU r BusState Source #

set :: BusState -> CPU r () Source #

MonadState CPUState (CPU r) Source # 
Instance details

Defined in Nes.CPU.Monad

Methods

get :: CPU r CPUState Source #

set :: CPUState -> CPU r () Source #

MonadState InterruptStatus (APU r) Source # 
Instance details

Defined in Nes.APU.Monad

MonadState InterruptStatus (CPU r) Source # 
Instance details

Defined in Nes.CPU.Monad

MonadState PPUState (PPU r) Source # 
Instance details

Defined in Nes.PPU.Monad

Methods

get :: PPU r PPUState Source #

set :: PPUState -> PPU r () Source #

modify :: MonadState s m => (s -> s) -> m () Source #

modify' :: MonadState s m => (s -> (a, s)) -> m a Source #

gets :: MonadState s m => (s -> a) -> m a Source #

getsM :: MonadState s m => (s -> m a) -> m a Source #

Lenses

(.=) :: MonadState s m => ASetter' s a -> a -> m () Source #

(+=) :: (MonadState s m, Num a) => ASetter' s a -> a -> m () Source #

(-=) :: (MonadState s m, Num a) => ASetter' s a -> a -> m () Source #

(%=) :: MonadState s m => ASetter' s a -> (a -> a) -> m () Source #

use :: MonadState s m => Getting a s a -> m a Source #

uses :: MonadState s m => Getting a s a -> (a -> r) -> m r Source #

usesM :: MonadState s m => Getting a s a -> (a -> m r) -> m r Source #

Like uses, but the computation can have side effect