Safe Haskell  None 

Language  Haskell2010 
Synopsis
 runQuoteT :: Monad m => QuoteT m a > m a
 runQuote :: Quote a > a
 freshUnique :: MonadQuote m => m Unique
 freshName :: MonadQuote m => Text > m Name
 freshTyName :: MonadQuote m => Text > m TyName
 freshenName :: MonadQuote m => Name > m Name
 freshenTyName :: MonadQuote m => TyName > m TyName
 newtype QuoteT m a = QuoteT {
 unQuoteT :: StateT FreshState m a
 type Quote = QuoteT Identity
 class Monad m => MonadQuote m
 type FreshState = Unique
 liftQuote :: MonadQuote m => Quote a > m a
 markNonFreshBelow :: MonadQuote m => Unique > m ()
 markNonFresh :: MonadQuote m => Unique > m ()
 markNonFreshMax :: MonadQuote m => Set Unique > m ()
Documentation
runQuoteT :: Monad m => QuoteT m a > m a Source #
Run a quote from an empty identifier state. Note that the resulting term cannot necessarily
be safely combined with other terms  that should happen inside QuoteT
.
freshUnique :: MonadQuote m => m Unique Source #
Get a fresh Unique
.
freshTyName :: MonadQuote m => Text > m TyName Source #
freshenName :: MonadQuote m => Name > m Name Source #
Make a copy of the given Name
that is distinct from the old one.
freshenTyName :: MonadQuote m => TyName > m TyName Source #
Make a copy of the given TyName
that is distinct from the old one.
The "quotation" monad transformer. Within this monad you can do safe construction of PLC terms using quasiquotation, freshname generation, and parsing.
QuoteT  

Instances
MonadTrans QuoteT Source #  
MonadReader r m => MonadReader r (QuoteT m) Source #  
MonadState s m => MonadState s (QuoteT m) Source #  
MonadError e m => MonadError e (QuoteT m) Source #  
Defined in PlutusCore.Quote throwError :: e > QuoteT m a Source # catchError :: QuoteT m a > (e > QuoteT m a) > QuoteT m a Source #  
MonadWriter w m => MonadWriter w (QuoteT m) Source #  
Monad m => Monad (QuoteT m) Source #  
Functor m => Functor (QuoteT m) Source #  
Monad m => Applicative (QuoteT m) Source #  
Defined in PlutusCore.Quote  
MonadIO m => MonadIO (QuoteT m) Source #  
Monad m => MonadQuote (QuoteT m) Source #  
MFunctor QuoteT Source #  
class Monad m => MonadQuote m Source #
A monad that allows lifting of quoted expressions.
Instances
MonadQuote m => MonadQuote (MaybeT m) Source #  
MonadQuote m => MonadQuote (PropertyT m) Source #  
MonadQuote m => MonadQuote (GenT m) Source #  
Monad m => MonadQuote (QuoteT m) Source #  
MonadQuote m => MonadQuote (ReaderT r m) Source #  
MonadQuote m => MonadQuote (StateT s m) Source #  
MonadQuote m => MonadQuote (ExceptT e m) Source #  
MonadQuote m => MonadQuote (RenameT ren m) Source #  
(Stream s, MonadQuote m) => MonadQuote (ParsecT e s m) Source #  
MonadQuote m => MonadQuote (NormalizeTypeT m tyname uni ann) Source #  
Defined in PlutusCore.Normalize.Internal liftQuote :: Quote a > NormalizeTypeT m tyname uni ann a Source #  
MonadQuote m => MonadQuote (DefT key uni fun ann m) Source #  
type FreshState = Unique Source #
The state contains the "next" Unique
that should be used for a name
liftQuote :: MonadQuote m => Quote a > m a Source #
markNonFreshBelow :: MonadQuote m => Unique > m () Source #
markNonFresh :: MonadQuote m => Unique > m () Source #
markNonFreshMax :: MonadQuote m => Set Unique > m () Source #