Studiuję bibliotekę mtl
i próbuję zrobić własne MonadTransformatory. Sprawdzałem deklarację Control.Monad.State.StateT
, a we wszystkich kodu, widzę tę składnię:Co znaczy "~" w Haskell?
execStateT :: (Monad m) => StateT s m a -> s -> m s
execStateT m s = do
~(_, s') <- runStateT m s
return s'
Co to ~
argumentu oznacza?