arithmetic-circuits-0.2.0: src/Fresh.hs
module Fresh ( fresh , evalFresh , Fresh , FreshT ) where import Protolude type FreshT m a = StateT Int m a type Fresh a = FreshT Identity a evalFresh :: Fresh a -> a evalFresh act = runIdentity $ evalStateT act 0 fresh :: Fresh Int fresh = do v <- get modify (+ 1) pure v