| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
PlutusCore.Analysis.Definitions
Description
Definition analysis for Plutus Core.
Synopsis
- type UniqueInfos ann = UniqueMap Unique (UniqueInfo ann)
- data ScopeType
- termDefs :: (Ord ann, HasUnique name TermUnique, HasUnique tyname TypeUnique, MonadState (UniqueInfos ann) m, MonadWriter [UniqueError ann] m) => Term tyname name uni fun ann -> m ()
- handleType :: (Ord ann, HasUnique tyname TypeUnique, MonadState (UniqueInfos ann) m, MonadWriter [UniqueError ann] m) => Type tyname uni ann -> m ()
- runTermDefs :: (Ord ann, HasUnique name TermUnique, HasUnique tyname TypeUnique, Monad m) => Term tyname name uni fun ann -> m (UniqueInfos ann, [UniqueError ann])
- addDef :: (Ord ann, HasUnique n unique, MonadState (UniqueInfos ann) m, MonadWriter [UniqueError ann] m) => n -> ann -> ScopeType -> m ()
- addUsage :: (Ord ann, HasUnique n unique, MonadState (UniqueInfos ann) m, MonadWriter [UniqueError ann] m) => n -> ann -> ScopeType -> m ()
Documentation
type UniqueInfos ann = UniqueMap Unique (UniqueInfo ann) Source #
Tag for distinguishing between whether we are talking about the term scope for variables or the type scope for variables.
Instances
| Eq ScopeType Source # | |
| Ord ScopeType Source # | |
Defined in PlutusCore.Analysis.Definitions | |
termDefs :: (Ord ann, HasUnique name TermUnique, HasUnique tyname TypeUnique, MonadState (UniqueInfos ann) m, MonadWriter [UniqueError ann] m) => Term tyname name uni fun ann -> m () Source #
Given a PLC term, add all of its term and type definitions and usages, including its subterms and subtypes, to a global map.
handleType :: (Ord ann, HasUnique tyname TypeUnique, MonadState (UniqueInfos ann) m, MonadWriter [UniqueError ann] m) => Type tyname uni ann -> m () Source #
Given a type, add its type definition/usage, including its subtypes, to a global map.
runTermDefs :: (Ord ann, HasUnique name TermUnique, HasUnique tyname TypeUnique, Monad m) => Term tyname name uni fun ann -> m (UniqueInfos ann, [UniqueError ann]) Source #
Arguments
| :: (Ord ann, HasUnique n unique, MonadState (UniqueInfos ann) m, MonadWriter [UniqueError ann] m) | |
| => n | The variable |
| -> ann | The annotation of the variable |
| -> ScopeType | The scope type |
| -> m () |
Arguments
| :: (Ord ann, HasUnique n unique, MonadState (UniqueInfos ann) m, MonadWriter [UniqueError ann] m) | |
| => n | The variable |
| -> ann | The annotation of the variable |
| -> ScopeType | The scope type |
| -> m () |