Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Lens.Family.State.Strict
Description
Synopsis
- zoom :: forall (m :: Type -> Type) c s a. Monad m => LensLike' (Zooming m c) s a -> StateT a m c -> StateT s m c
- use :: forall (m :: Type -> Type) a s t b. Monad m => FoldLike a s t a b -> StateT s m a
- uses :: forall (m :: Type -> Type) r s t a b. Monad m => FoldLike r s t a b -> (a -> r) -> StateT s m r
- (%=) :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> (a -> b) -> StateT s m ()
- assign :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> b -> StateT s m ()
- (.=) :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> b -> StateT s m ()
- (%%=) :: forall (m :: Type -> Type) c s a b. Monad m => LensLike (Writer c) s s a b -> (a -> (c, b)) -> StateT s m c
- (<~) :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> StateT s m b -> StateT s m ()
- (+=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m ()
- (-=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m ()
- (*=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m ()
- (//=) :: forall (m :: Type -> Type) a s. (Monad m, Fractional a) => ASetter' s a -> a -> StateT s m ()
- (&&=) :: forall (m :: Type -> Type) s. Monad m => ASetter' s Bool -> Bool -> StateT s m ()
- (||=) :: forall (m :: Type -> Type) s. Monad m => ASetter' s Bool -> Bool -> StateT s m ()
- (<>=) :: forall (m :: Type -> Type) a s. (Monad m, Monoid a) => ASetter' s a -> a -> StateT s m ()
- (%!=) :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> (a -> b) -> StateT s m ()
- (+!=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m ()
- (-!=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m ()
- (*!=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m ()
- (//!=) :: forall (m :: Type -> Type) a s. (Monad m, Fractional a) => ASetter' s a -> a -> StateT s m ()
- (&&!=) :: forall (m :: Type -> Type) s. Monad m => ASetter' s Bool -> Bool -> StateT s m ()
- (||!=) :: forall (m :: Type -> Type) s. Monad m => ASetter' s Bool -> Bool -> StateT s m ()
- (<>!=) :: forall (m :: Type -> Type) a s. (Monad m, Monoid a) => ASetter' s a -> a -> StateT s m ()
- data Zooming (m :: Type -> Type) c a
- type LensLike (f :: Type -> Type) s t a b = (a -> f b) -> s -> f t
- type LensLike' (f :: Type -> Type) s a = (a -> f a) -> s -> f s
- type FoldLike r s t a b = LensLike (Constant r :: Type -> Type) s t a b
- data Constant a (b :: k)
- type ASetter s t a b = LensLike Identity s t a b
- type ASetter' s a = LensLike' Identity s a
- data Identity a
- data StateT s (m :: Type -> Type) a
- type Writer w = WriterT w Identity
Documentation
zoom :: forall (m :: Type -> Type) c s a. Monad m => LensLike' (Zooming m c) s a -> StateT a m c -> StateT s m c #
zoom :: Monad m => Lens' s a -> StateT a m c -> StateT s m c
Lift a stateful operation on a field to a stateful operation on the whole state. This is a good way to call a "subroutine" that only needs access to part of the state.
zoom :: (Monad m, Monoid c) => Traversal' s a -> StateT a m c -> StateT s m c
Run the "subroutine" on each element of the traversal in turn and mconcat
all the results together.
zoom :: Monad m => Traversal' s a -> StateT a m () -> StateT s m ()
Run the "subroutine" on each element the traversal in turn.
use :: forall (m :: Type -> Type) a s t b. Monad m => FoldLike a s t a b -> StateT s m a #
use :: Monad m => Getter s t a b -> StateT s m a
Retrieve a field of the state
use :: (Monad m, Monoid a) => Fold s t a b -> StateT s m a
Retrieve a monoidal summary of all the referenced fields from the state
uses :: forall (m :: Type -> Type) r s t a b. Monad m => FoldLike r s t a b -> (a -> r) -> StateT s m r #
uses :: (Monad m, Monoid r) => Fold s t a b -> (a -> r) -> StateT s m r
Retrieve all the referenced fields from the state and foldMap the results together with f :: a -> r
.
uses :: Monad m => Getter s t a b -> (a -> r) -> StateT s m r
Retrieve a field of the state and pass it through the function f :: a -> r
.
uses l f = f <$> use l
(%=) :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> (a -> b) -> StateT s m () infix 4 #
Modify a field of the state.
assign :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> b -> StateT s m () #
Set a field of the state.
(.=) :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> b -> StateT s m () infix 4 #
Set a field of the state.
(%%=) :: forall (m :: Type -> Type) c s a b. Monad m => LensLike (Writer c) s s a b -> (a -> (c, b)) -> StateT s m c infix 4 #
(%%=) :: Monad m => Lens s s a b -> (a -> (c, b)) -> StateT s m c
Modify a field of the state while returning another value.
(%%=) :: (Monad m, Monoid c) => Traversal s s a b -> (a -> (c, b)) -> StateT s m c
Modify each field of the state and return the mconcat
of the other values.
(<~) :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> StateT s m b -> StateT s m () infixr 2 #
Set a field of the state using the result of executing a stateful command.
Compound Assignments
(+=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m () infixr 4 #
(-=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m () infixr 4 #
(*=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m () infixr 4 #
(//=) :: forall (m :: Type -> Type) a s. (Monad m, Fractional a) => ASetter' s a -> a -> StateT s m () infixr 4 #
(&&=) :: forall (m :: Type -> Type) s. Monad m => ASetter' s Bool -> Bool -> StateT s m () infixr 4 #
(||=) :: forall (m :: Type -> Type) s. Monad m => ASetter' s Bool -> Bool -> StateT s m () infixr 4 #
(<>=) :: forall (m :: Type -> Type) a s. (Monad m, Monoid a) => ASetter' s a -> a -> StateT s m () infixr 4 #
Monoidally append a value to all referenced fields of the state.
Strict Assignments
(%!=) :: forall (m :: Type -> Type) s a b. Monad m => ASetter s s a b -> (a -> b) -> StateT s m () infix 4 #
Strictly modify a field of the state.
(+!=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m () infixr 4 #
(-!=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m () infixr 4 #
(*!=) :: forall (m :: Type -> Type) a s. (Monad m, Num a) => ASetter' s a -> a -> StateT s m () infixr 4 #
(//!=) :: forall (m :: Type -> Type) a s. (Monad m, Fractional a) => ASetter' s a -> a -> StateT s m () infixr 4 #
(&&!=) :: forall (m :: Type -> Type) s. Monad m => ASetter' s Bool -> Bool -> StateT s m () infixr 4 #
(||!=) :: forall (m :: Type -> Type) s. Monad m => ASetter' s Bool -> Bool -> StateT s m () infixr 4 #
(<>!=) :: forall (m :: Type -> Type) a s. (Monad m, Monoid a) => ASetter' s a -> a -> StateT s m () infixr 4 #
Types
data Zooming (m :: Type -> Type) c a #
Instances
(Monoid c, Monad m) => Applicative (Zooming m c) # | |
Defined in Lens.Family.State.Zoom | |
Monad m => Functor (Zooming m c) # | |
Re-exports
Constant functor.
Instances
Generic1 (Constant a :: k -> Type) | |||||
Defined in Data.Functor.Constant Associated Types
| |||||
Bifoldable (Constant :: Type -> Type -> Type) | |||||
Bifunctor (Constant :: Type -> Type -> Type) | |||||
Bitraversable (Constant :: Type -> Type -> Type) | |||||
Defined in Data.Functor.Constant Methods bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Constant a b -> f (Constant c d) # | |||||
Eq2 (Constant :: Type -> Type -> Type) | |||||
Ord2 (Constant :: Type -> Type -> Type) | |||||
Defined in Data.Functor.Constant | |||||
Read2 (Constant :: Type -> Type -> Type) | |||||
Defined in Data.Functor.Constant Methods liftReadsPrec2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> Int -> ReadS (Constant a b) # liftReadList2 :: (Int -> ReadS a) -> ReadS [a] -> (Int -> ReadS b) -> ReadS [b] -> ReadS [Constant a b] # liftReadPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec (Constant a b) # liftReadListPrec2 :: ReadPrec a -> ReadPrec [a] -> ReadPrec b -> ReadPrec [b] -> ReadPrec [Constant a b] # | |||||
Show2 (Constant :: Type -> Type -> Type) | |||||
Foldable (Constant a :: Type -> Type) | |||||
Defined in Data.Functor.Constant Methods fold :: Monoid m => Constant a m -> m # foldMap :: Monoid m => (a0 -> m) -> Constant a a0 -> m # foldMap' :: Monoid m => (a0 -> m) -> Constant a a0 -> m # foldr :: (a0 -> b -> b) -> b -> Constant a a0 -> b # foldr' :: (a0 -> b -> b) -> b -> Constant a a0 -> b # foldl :: (b -> a0 -> b) -> b -> Constant a a0 -> b # foldl' :: (b -> a0 -> b) -> b -> Constant a a0 -> b # foldr1 :: (a0 -> a0 -> a0) -> Constant a a0 -> a0 # foldl1 :: (a0 -> a0 -> a0) -> Constant a a0 -> a0 # toList :: Constant a a0 -> [a0] # null :: Constant a a0 -> Bool # length :: Constant a a0 -> Int # elem :: Eq a0 => a0 -> Constant a a0 -> Bool # maximum :: Ord a0 => Constant a a0 -> a0 # minimum :: Ord a0 => Constant a a0 -> a0 # | |||||
Eq a => Eq1 (Constant a :: Type -> Type) | |||||
Ord a => Ord1 (Constant a :: Type -> Type) | |||||
Defined in Data.Functor.Constant | |||||
Read a => Read1 (Constant a :: Type -> Type) | |||||
Defined in Data.Functor.Constant Methods liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Constant a a0) # liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Constant a a0] # liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Constant a a0) # liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Constant a a0] # | |||||
Show a => Show1 (Constant a :: Type -> Type) | |||||
Contravariant (Constant a :: Type -> Type) | |||||
Traversable (Constant a :: Type -> Type) | |||||
Defined in Data.Functor.Constant | |||||
Monoid a => Applicative (Constant a :: Type -> Type) | |||||
Defined in Data.Functor.Constant | |||||
Functor (Constant a :: Type -> Type) | |||||
Phantom (Constant a :: Type -> Type) # | |||||
Defined in Lens.Family.Phantom | |||||
(Typeable b, Typeable k, Data a) => Data (Constant a b) | |||||
Defined in Data.Functor.Constant Methods gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Constant a b -> c (Constant a b) # gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Constant a b) # toConstr :: Constant a b -> Constr # dataTypeOf :: Constant a b -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Constant a b)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Constant a b)) # gmapT :: (forall b0. Data b0 => b0 -> b0) -> Constant a b -> Constant a b # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Constant a b -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Constant a b -> r # gmapQ :: (forall d. Data d => d -> u) -> Constant a b -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Constant a b -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Constant a b -> m (Constant a b) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Constant a b -> m (Constant a b) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Constant a b -> m (Constant a b) # | |||||
Monoid a => Monoid (Constant a b) | |||||
Semigroup a => Semigroup (Constant a b) | |||||
Generic (Constant a b) | |||||
Defined in Data.Functor.Constant Associated Types
| |||||
Read a => Read (Constant a b) | |||||
Show a => Show (Constant a b) | |||||
Eq a => Eq (Constant a b) | |||||
Ord a => Ord (Constant a b) | |||||
Defined in Data.Functor.Constant | |||||
type Rep1 (Constant a :: k -> Type) | |||||
Defined in Data.Functor.Constant | |||||
type Rep (Constant a b) | |||||
Defined in Data.Functor.Constant |
Identity functor and monad. (a non-strict monad)
Since: base-4.8.0.0
Instances
MonadFix Identity | Since: base-4.8.0.0 | ||||
Defined in Data.Functor.Identity | |||||
MonadZip Identity | Since: base-4.8.0.0 | ||||
Foldable Identity | Since: base-4.8.0.0 | ||||
Defined in Data.Functor.Identity Methods fold :: Monoid m => Identity m -> m # foldMap :: Monoid m => (a -> m) -> Identity a -> m # foldMap' :: Monoid m => (a -> m) -> Identity a -> m # foldr :: (a -> b -> b) -> b -> Identity a -> b # foldr' :: (a -> b -> b) -> b -> Identity a -> b # foldl :: (b -> a -> b) -> b -> Identity a -> b # foldl' :: (b -> a -> b) -> b -> Identity a -> b # foldr1 :: (a -> a -> a) -> Identity a -> a # foldl1 :: (a -> a -> a) -> Identity a -> a # elem :: Eq a => a -> Identity a -> Bool # maximum :: Ord a => Identity a -> a # minimum :: Ord a => Identity a -> a # | |||||
Foldable1 Identity | Since: base-4.18.0.0 | ||||
Defined in Data.Foldable1 Methods fold1 :: Semigroup m => Identity m -> m # foldMap1 :: Semigroup m => (a -> m) -> Identity a -> m # foldMap1' :: Semigroup m => (a -> m) -> Identity a -> m # toNonEmpty :: Identity a -> NonEmpty a # maximum :: Ord a => Identity a -> a # minimum :: Ord a => Identity a -> a # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Identity a -> b # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Identity a -> b # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Identity a -> b # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Identity a -> b # | |||||
Eq1 Identity | Since: base-4.9.0.0 | ||||
Ord1 Identity | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Classes | |||||
Read1 Identity | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Classes | |||||
Show1 Identity | Since: base-4.9.0.0 | ||||
Traversable Identity | Since: base-4.9.0.0 | ||||
Applicative Identity | Since: base-4.8.0.0 | ||||
Functor Identity | Since: base-4.8.0.0 | ||||
Monad Identity | Since: base-4.8.0.0 | ||||
NFData1 Identity | Since: deepseq-1.4.3.0 | ||||
Defined in Control.DeepSeq | |||||
Identical Identity # | |||||
Defined in Lens.Family.Identical | |||||
Generic1 Identity | |||||
Defined in Data.Functor.Identity Associated Types
| |||||
Data a => Data (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Identity a -> c (Identity a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Identity a) # toConstr :: Identity a -> Constr # dataTypeOf :: Identity a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Identity a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Identity a)) # gmapT :: (forall b. Data b => b -> b) -> Identity a -> Identity a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Identity a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Identity a -> r # gmapQ :: (forall d. Data d => d -> u) -> Identity a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Identity a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Identity a -> m (Identity a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Identity a -> m (Identity a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Identity a -> m (Identity a) # | |||||
IsString a => IsString (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.String Methods fromString :: String -> Identity a # | |||||
Storable a => Storable (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity Methods alignment :: Identity a -> Int # peekElemOff :: Ptr (Identity a) -> Int -> IO (Identity a) # pokeElemOff :: Ptr (Identity a) -> Int -> Identity a -> IO () # peekByteOff :: Ptr b -> Int -> IO (Identity a) # pokeByteOff :: Ptr b -> Int -> Identity a -> IO () # | |||||
Monoid a => Monoid (Identity a) | Since: base-4.9.0.0 | ||||
Semigroup a => Semigroup (Identity a) | Since: base-4.9.0.0 | ||||
Bits a => Bits (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity Methods (.&.) :: Identity a -> Identity a -> Identity a # (.|.) :: Identity a -> Identity a -> Identity a # xor :: Identity a -> Identity a -> Identity a # complement :: Identity a -> Identity a # shift :: Identity a -> Int -> Identity a # rotate :: Identity a -> Int -> Identity a # setBit :: Identity a -> Int -> Identity a # clearBit :: Identity a -> Int -> Identity a # complementBit :: Identity a -> Int -> Identity a # testBit :: Identity a -> Int -> Bool # bitSizeMaybe :: Identity a -> Maybe Int # bitSize :: Identity a -> Int # isSigned :: Identity a -> Bool # shiftL :: Identity a -> Int -> Identity a # unsafeShiftL :: Identity a -> Int -> Identity a # shiftR :: Identity a -> Int -> Identity a # unsafeShiftR :: Identity a -> Int -> Identity a # rotateL :: Identity a -> Int -> Identity a # | |||||
FiniteBits a => FiniteBits (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity Methods finiteBitSize :: Identity a -> Int # countLeadingZeros :: Identity a -> Int # countTrailingZeros :: Identity a -> Int # | |||||
Bounded a => Bounded (Identity a) | Since: base-4.9.0.0 | ||||
Enum a => Enum (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity Methods succ :: Identity a -> Identity a # pred :: Identity a -> Identity a # fromEnum :: Identity a -> Int # enumFrom :: Identity a -> [Identity a] # enumFromThen :: Identity a -> Identity a -> [Identity a] # enumFromTo :: Identity a -> Identity a -> [Identity a] # enumFromThenTo :: Identity a -> Identity a -> Identity a -> [Identity a] # | |||||
Floating a => Floating (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity Methods exp :: Identity a -> Identity a # log :: Identity a -> Identity a # sqrt :: Identity a -> Identity a # (**) :: Identity a -> Identity a -> Identity a # logBase :: Identity a -> Identity a -> Identity a # sin :: Identity a -> Identity a # cos :: Identity a -> Identity a # tan :: Identity a -> Identity a # asin :: Identity a -> Identity a # acos :: Identity a -> Identity a # atan :: Identity a -> Identity a # sinh :: Identity a -> Identity a # cosh :: Identity a -> Identity a # tanh :: Identity a -> Identity a # asinh :: Identity a -> Identity a # acosh :: Identity a -> Identity a # atanh :: Identity a -> Identity a # log1p :: Identity a -> Identity a # expm1 :: Identity a -> Identity a # | |||||
RealFloat a => RealFloat (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity Methods floatRadix :: Identity a -> Integer # floatDigits :: Identity a -> Int # floatRange :: Identity a -> (Int, Int) # decodeFloat :: Identity a -> (Integer, Int) # encodeFloat :: Integer -> Int -> Identity a # exponent :: Identity a -> Int # significand :: Identity a -> Identity a # scaleFloat :: Int -> Identity a -> Identity a # isInfinite :: Identity a -> Bool # isDenormalized :: Identity a -> Bool # isNegativeZero :: Identity a -> Bool # | |||||
Generic (Identity a) | |||||
Defined in Data.Functor.Identity Associated Types
| |||||
Ix a => Ix (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity Methods range :: (Identity a, Identity a) -> [Identity a] # index :: (Identity a, Identity a) -> Identity a -> Int # unsafeIndex :: (Identity a, Identity a) -> Identity a -> Int # inRange :: (Identity a, Identity a) -> Identity a -> Bool # rangeSize :: (Identity a, Identity a) -> Int # unsafeRangeSize :: (Identity a, Identity a) -> Int # | |||||
Num a => Num (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity | |||||
Read a => Read (Identity a) | This instance would be equivalent to the derived instances of the
Since: base-4.8.0.0 | ||||
Fractional a => Fractional (Identity a) | Since: base-4.9.0.0 | ||||
Integral a => Integral (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity Methods quot :: Identity a -> Identity a -> Identity a # rem :: Identity a -> Identity a -> Identity a # div :: Identity a -> Identity a -> Identity a # mod :: Identity a -> Identity a -> Identity a # quotRem :: Identity a -> Identity a -> (Identity a, Identity a) # divMod :: Identity a -> Identity a -> (Identity a, Identity a) # | |||||
Real a => Real (Identity a) | Since: base-4.9.0.0 | ||||
Defined in Data.Functor.Identity Methods toRational :: Identity a -> Rational # | |||||
RealFrac a => RealFrac (Identity a) | Since: base-4.9.0.0 | ||||
Show a => Show (Identity a) | This instance would be equivalent to the derived instances of the
Since: base-4.8.0.0 | ||||
NFData a => NFData (Identity a) | Since: deepseq-1.4.0.0 | ||||
Defined in Control.DeepSeq | |||||
Eq a => Eq (Identity a) | Since: base-4.8.0.0 | ||||
Ord a => Ord (Identity a) | Since: base-4.8.0.0 | ||||
Defined in Data.Functor.Identity | |||||
type Rep1 Identity | Since: base-4.8.0.0 | ||||
Defined in Data.Functor.Identity | |||||
type Rep (Identity a) | Since: base-4.8.0.0 | ||||
Defined in Data.Functor.Identity |
data StateT s (m :: Type -> Type) a #
A state transformer monad parameterized by:
s
- The state.m
- The inner monad.
The return
function leaves the state unchanged, while >>=
uses
the final state of the first computation as the initial state of
the second.
Instances
MonadTrans (StateT s) | |||||
Defined in Control.Monad.Trans.State.Strict | |||||
MonadFail m => MonadFail (StateT s m) | |||||
Defined in Control.Monad.Trans.State.Strict | |||||
MonadFix m => MonadFix (StateT s m) | |||||
Defined in Control.Monad.Trans.State.Strict | |||||
MonadIO m => MonadIO (StateT s m) | |||||
Defined in Control.Monad.Trans.State.Strict | |||||
Contravariant m => Contravariant (StateT s m) | |||||
(Functor m, MonadPlus m) => Alternative (StateT s m) | |||||
(Functor m, Monad m) => Applicative (StateT s m) | |||||
Defined in Control.Monad.Trans.State.Strict | |||||
Functor m => Functor (StateT s m) | |||||
Monad m => Monad (StateT s m) | |||||
MonadPlus m => MonadPlus (StateT s m) | |||||
Generic (StateT s m a) | |||||
Defined in Control.Monad.Trans.State.Strict Associated Types
| |||||
type Rep (StateT s m a) | |||||
Defined in Control.Monad.Trans.State.Strict |