To simplify, compare only the relevant part (which is not trivially the same):
MaybeT (StateT Integer Identity) a
StateT Integer (MaybeT Identity) a
We know that (ignoring abstractions newtype)
type MaybeT m a = m (Maybe a)
type StateT s m a = s -> m (a, s)
Consequently, two transformer stacks look like
MaybeT (Λb. Integer -> (b, Integer)) a
≡ Integer -> (Maybe a, Integer)
and
StateT Integer (Λb. Maybe b) a
≡ Integer -> Maybe (a, Integer)
, , , Maybe. , MaybeT , , Nothing, MaybeT , State .
IO: , – IO. , IOT.