monad-gen 0.2.0.1 → 0.2.0.2
raw patch · 2 files changed
+5/−1 lines, 2 files
Files
- monad-gen.cabal +1/−1
- src/Control/Monad/Gen.hs +4/−0
monad-gen.cabal view
@@ -1,5 +1,5 @@ name: monad-gen-version: 0.2.0.1+version: 0.2.0.2 synopsis: A simple monad for generating fresh integers description: This module provides a simple monad transformer @GenT@ to enumerate unique values within
src/Control/Monad/Gen.hs view
@@ -26,6 +26,10 @@ -- | The monad transformer for generating fresh values. newtype GenT e m a = GenT {unGenT :: StateT e m a} deriving(Functor)++instance (Monad m, Enum e) => MonadGen e (GenT e m) where+ gen = GenT (modify succ) >> GenT get+ instance Monad m => Monad (GenT e m) where return = GenT . return (GenT m) >>= f = GenT $ m >>= unGenT . f