{-# LANGUAGE MultiParamTypeClasses #-}{-| A common interface for monads which allow some kind of fresh name
generation.
-}moduleAgda.Utils.FreshwhereimportControl.Monad.StateimportControl.Monad.ReaderclassHasFreshiawherenextFresh::a->(i,a)fresh::(HasFreshis,MonadStatesm)=>mifresh=do(i,s)<-getsnextFreshputsreturniwithFresh::(HasFreshie,MonadReaderem)=>(i->ma)->mawithFreshret=do(i,e)<-asksnextFreshlocal(conste)$reti