Hey Haskellers,
Right now I'm studying the mtl
library, trying to do some MonadTransformers of my own. I was checking the Control.Monad.State.StateT
declaration, and across all the code, I see this syntax:
execStateT :: (Monad m) => StateT s m a -> s -> m s
execStateT m s = do
~(_, s') <- runStateT m s
return s'
I'm wondering, what this "~" operand means?
Thanks in advance.