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

PlutusIR.TypeCheck.Internal

Description

The internal module of the type checker that defines the actual algorithms, but not the user-facing API.

Synopsis

data AllowEscape #

Extra flag to be passed in the TypeCheckM Reader context, to signal if the PIR expression currently being typechecked is at the top-level and thus its type can escape, or nested and thus not allowed to escape.

Constructors

YesEscape 
NoEscape 

inferTypeM :: forall m uni fun ann. MonadTypeCheckPir uni fun ann m => Term TyName Name uni fun ann -> PirTCEnv uni fun m (Normalized (Type TyName uni ())) #

Synthesize the type of a term, returning a normalized type.

checkTypeM :: MonadTypeCheckPir uni fun ann m => ann -> Term TyName Name uni fun ann -> Normalized (Type TyName uni ()) -> PirTCEnv uni fun m () #

Check a Term against a NormalizedType.

runTypeCheckM :: PirTCConfig uni fun -> PirTCEnv uni fun m a -> m a #

Run a TypeCheckM computation by supplying a TypeCheckConfig to it. Differs from its PLC version in that is passes an extra env flag YesEscape.