@@ -3,6 +3,7 @@
33--
44
55{-# LANGUAGE DefaultSignatures #-}
6+{-# LANGUAGE TypeFamilies #-}
67
78module Control.Monad.Supply.Class where
89
@@ -15,9 +16,9 @@ import Control.Monad.Writer
1516class Monad m => MonadSupply m where
1617 fresh :: m Integer
1718 peek :: m Integer
18− default fresh :: MonadTrans t => t m Integer
19+ default fresh :: (MonadTrans t, MonadSupply n, m ~ t n) => m Integer
1920 fresh = lift fresh
20− default peek :: MonadTrans t => t m Integer
21+ default peek :: (MonadTrans t, MonadSupply n, m ~ t n) => m Integer
2122 peek = lift peek
2223
2324instance Monad m => MonadSupply (SupplyT m) where