| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
PlutusCore.Quote
Synopsis
- runQuoteT :: 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 #
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 #
Get a fresh Unique.
freshName :: MonadQuote m => Text name.
freshenName :: MonadQuote m => Name -> m Name #
Make a copy of the given Name that is distinct from the old one.
freshenTyName :: MonadQuote m => TyName -> m TyName #
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, fresh-name generation, and parsing.
Constructors
| QuoteT | |
| MonadQuote m => MonadQuote (NormalizeTypeT m tyname uni ann) # | |
Defined in PlutusCore.Normalize.Internal Methods liftQuote :: Quote a -> NormalizeTypeT m tyname uni ann a # | |
| MonadQuote m => MonadQuote (SimplifierT name uni fun ann m) # | |
Defined in UntypedPlutusCore.Transform.Simplifier Methods liftQuote :: Quote a -> SimplifierT name uni fun ann m a # | |
type FreshState = Unique #
The state contains the "next" Unique that should be used for a name
liftQuote :: MonadQuote m => Quote a -> m a #
markNonFreshBelow :: MonadQuote m => Unique -> m () #
markNonFresh :: MonadQuote m => Unique -> m () #
markNonFreshMax :: MonadQuote m => Set Unique -> m () #