@@ -9,6 +9,7 @@
99{-# LANGUAGE FlexibleInstances #-}
1010{-# LANGUAGE UndecidableInstances #-}
1111{-# LANGUAGE FunctionalDependencies #-}
12+{-# LANGUAGE TypeFamilies #-}
1213{-# LANGUAGE PolyKinds #-}
1314
1415-- | See "Control.Monad.State.Class".
@@ -53,12 +54,12 @@ modify t f = state t (\s -> ((), f s))
5354gets :: MonadState tag s m => proxy tag -> (s -> a) -> m a
5455gets t f = Util.fmap f (get t)
5556
56−instance Monad m => MonadState tag s (S.L.StateT tag s m) where
57+instance (Monad m, s ~ s') => MonadState tag s (S.L.StateT tag s' m) where
5758 get = S.L.get
5859 put = S.L.put
5960 state = S.L.state
6061
61−instance Monad m => MonadState tag s (S.S.StateT tag s m) where
62+instance (Monad m, s ~ s') => MonadState tag s (S.S.StateT tag s' m) where
6263 get = S.S.get
6364 put = S.S.put
6465 state = S.S.state