Add MonadFix instance for FreshIdT
This commit is contained in:
parent
fd63be4f96
commit
a1fd246d01
|
@ -49,7 +49,13 @@ class Monad m => MonadFreshId i m | m -> i where
|
|||
freshId = lift freshId
|
||||
|
||||
newtype FreshIdT i m a = FreshIdT { unFreshIdT :: StateT i m a }
|
||||
deriving (Functor, Applicative, Monad, MonadTrans)
|
||||
deriving
|
||||
( Functor
|
||||
, Applicative
|
||||
, Monad
|
||||
, MonadTrans
|
||||
, MonadFix
|
||||
)
|
||||
|
||||
instance (Monad m, Num i) => MonadFreshId i (FreshIdT i m) where
|
||||
freshId = FreshIdT $ get <* modify (+ 1)
|
||||
|
|
Loading…
Reference in a new issue