compositional-data-0.1.0.0: Compositional Data Types

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.Fresh

Documentation

data FreshT m a Source #

Instances
Monad m => Monad (FreshT m) Source # 
Instance details

Defined in Control.Monad.Trans.Fresh

Methods

(>>=) :: FreshT m a -> (a -> FreshT m b) -> FreshT m b #

(>>) :: FreshT m a -> FreshT m b -> FreshT m b #

return :: a -> FreshT m a #

fail :: String -> FreshT m a #

Functor m => Functor (FreshT m) Source # 
Instance details

Defined in Control.Monad.Trans.Fresh

Methods

fmap :: (a -> b) -> FreshT m a -> FreshT m b #

(<$) :: a -> FreshT m b -> FreshT m a #

Applicative m => Applicative (FreshT m) Source # 
Instance details

Defined in Control.Monad.Trans.Fresh

Methods

pure :: a -> FreshT m a #

(<*>) :: FreshT m (a -> b) -> FreshT m a -> FreshT m b #

liftA2 :: (a -> b -> c) -> FreshT m a -> FreshT m b -> FreshT m c #

(*>) :: FreshT m a -> FreshT m b -> FreshT m b #

(<*) :: FreshT m a -> FreshT m b -> FreshT m a #

Alternative m => Alternative (FreshT m) Source # 
Instance details

Defined in Control.Monad.Trans.Fresh

Methods

empty :: FreshT m a #

(<|>) :: FreshT m a -> FreshT m a -> FreshT m a #

some :: FreshT m a -> FreshT m [a] #

many :: FreshT m a -> FreshT m [a] #

MonadPlus m => MonadPlus (FreshT m) Source # 
Instance details

Defined in Control.Monad.Trans.Fresh

Methods

mzero :: FreshT m a #

mplus :: FreshT m a -> FreshT m a -> FreshT m a #

evalFreshT :: FreshT m a -> m a Source #

withName :: Monad m => (Name i -> FreshT m a) -> FreshT m a Source #

data Name i Source #

Instances
PEq (Name :: k -> Type) Source # 
Instance details

Defined in Data.Comp.Equality

Methods

peq :: Name i -> Name j -> Fresh Bool Source #

Category s => Functor (s :: α -> α -> Type) ((->) :: Type -> Type -> Type) (Name :: α -> Type) Source # 
Instance details

Defined in Control.Monad.Trans.Fresh

Methods

map :: s a b -> Name a -> Name b #

(EqH f, PEq a) => PEq (Cxt h f (Name :: k -> Type) a :: k -> Type) Source # 
Instance details

Defined in Data.Comp.Term

Methods

peq :: Cxt h f Name a i -> Cxt h f Name a j -> Fresh Bool Source #

Eq (Name i) Source # 
Instance details

Defined in Control.Monad.Trans.Fresh

Methods

(==) :: Name i -> Name i -> Bool #

(/=) :: Name i -> Name i -> Bool #

Show (Name i) Source # 
Instance details

Defined in Control.Monad.Trans.Fresh

Methods

showsPrec :: Int -> Name i -> ShowS #

show :: Name i -> String #

showList :: [Name i] -> ShowS #