module State
( -- * State
State
, runState
, evalState
, execState
, mapState
, withState
-- * StateT
, StateT(..)
, evalStateT
, execStateT
, mapStateT
, withStateT
-- * MonadState
, MonadState(..)
, gets
, modify
, modify'
-- * Zoom
, Zoom
, zoom
, Zoomed
) where
import Control.Lens.Zoom (Zoom(zoom), Zoomed)
import Control.Monad.State.Class (MonadState(..), gets, modify, modify')
import Control.Monad.Trans.State.Strict (State, StateT(..), evalState,
evalStateT, execState, execStateT,
mapState, mapStateT, runState,
withState, withStateT)