plutus-core-1.38.0.0: Language library for Plutus Core
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusIR.Analysis.VarInfo

Synopsis

Documentation

data VarsInfo tyname name uni a Source #

Information about variables and type variables in the program.

Constructors

VarsInfo 

Fields

Instances

Instances details
Monoid (VarsInfo tyname name uni a) Source # 
Instance details

Defined in PlutusIR.Analysis.VarInfo

Methods

memptyVarsInfo tyname name uni a Source #

mappendVarsInfo tyname name uni a → VarsInfo tyname name uni a → VarsInfo tyname name uni a Source #

mconcat ∷ [VarsInfo tyname name uni a] → VarsInfo tyname name uni a Source #

Semigroup (VarsInfo tyname name uni a) Source # 
Instance details

Defined in PlutusIR.Analysis.VarInfo

Methods

(<>)VarsInfo tyname name uni a → VarsInfo tyname name uni a → VarsInfo tyname name uni a Source #

sconcatNonEmpty (VarsInfo tyname name uni a) → VarsInfo tyname name uni a Source #

stimesIntegral b ⇒ b → VarsInfo tyname name uni a → VarsInfo tyname name uni a Source #

lookupVarInfoHasUnique name TermUnique ⇒ name → VarsInfo tyname name uni a → Maybe (VarInfo tyname name uni a) Source #

Lookup the VarInfo for a name.

lookupTyVarInfoHasUnique tyname TypeUnique ⇒ tyname → VarsInfo tyname name uni a → Maybe (TyVarInfo tyname name uni a) Source #

Lookup the TyVarInfo for a tyname.

data TyVarInfo tyname name uni a Source #

Information about a type variable in the program.

Constructors

NormalTyVar

A normal type variable, which could be anything.

DatatypeTyVar (Datatype tyname name uni a)

A type variable corresponding to a datatype. Tells us the number of type variables and the constructors.

data VarInfo tyname name uni a Source #

Constructors

NormalVar Strictness (Type tyname uni a) (Maybe Arity)

A normal term variable, which could be anything. Tells us if it is strictly evaluated, its type, and possibly its arity.

DatatypeConstructor Int tyname

A term variable corresponding to a datatype constructor. Tells us the index of the constructor and the name of the datatype that owns it.

DatatypeMatcher tyname

A term variable corresponding to a datatype matcher. Tells us the name of the datatype that owns it.

varInfoStrictnessVarInfo tyname name uni a → Strictness Source #

varInfoArityHasUnique tyname TypeUniqueVarInfo tyname name uni a → VarsInfo tyname name uni a → Maybe Arity Source #

termVarInfo ∷ (HasUnique name TermUnique, HasUnique tyname TypeUnique) ⇒ Term tyname name uni fun a → VarsInfo tyname name uni a Source #

datatypeMatcherArityDatatype tyname uni fun a → Arity Source #

datatypeConstructorArityIntDatatype tyname uni fun a → Maybe Arity Source #

bindingVarInfo ∷ (HasUnique name TermUnique, HasUnique tyname TypeUnique) ⇒ Binding tyname name uni fun a → VarsInfo tyname name uni a Source #

getConstructorArities ∷ (HasUnique name TermUnique, HasUnique tyname TypeUnique) ⇒ tyname → VarsInfo tyname name uni a → Maybe [Arity] Source #

Get the arities of the constructors for the given datatype name.