For reference...
Generic monadic operations
liftM :: Monad m ⇒ (a → b) → m a → m b
mapM :: Monad m ⇒ (a → m b) → [a] → m [b]
State monad operations
inFst :: StateM s1 a → StateM (s1,s2) a
inSnd :: StateM s2 a → StateM (s1,s2) a
runS :: StateM s a → s → (a,s)