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

Evaluation.Builtins.Common

Synopsis

Documentation

unsafeSplitStructuralOperational ∷ (PrettyPlc structural, PrettyPlc term, Typeable structural, Typeable term) ⇒ Either (EvaluationException structural operational term) a → EvaluationResult a Source #

Throw on a StructuralEvaluationError and turn an OperationalEvaluationError into an EvaluationFailure (thus erasing the content of the error in the latter case).

evaluateCek ∷ ∀ (uni ∷ TypeType) fun ann. ThrowableBuiltins uni fun ⇒ EmitterMode uni fun → MachineParameters CekMachineCosts fun (CekValue uni fun ann) → Term Name uni fun ann → (Either (CekEvaluationException Name uni fun) (Term Name uni fun ()), [Text]) Source #

Evaluate a term using the CEK machine with logging enabled. *THIS FUNCTION IS PARTIAL if the input term contains free variables*

evaluateCekNoEmit ∷ ∀ (uni ∷ TypeType) fun ann. ThrowableBuiltins uni fun ⇒ MachineParameters CekMachineCosts fun (CekValue uni fun ann) → Term Name uni fun ann → Either (CekEvaluationException Name uni fun) (Term Name uni fun ()) Source #

Evaluate a term using the CEK machine with logging disabled. *THIS FUNCTION IS PARTIAL if the input term contains free variables*

readKnownCek ∷ ∀ (uni ∷ TypeType) fun a ann. (ThrowableBuiltins uni fun, ReadKnown (Term Name uni fun ()) a) ⇒ MachineParameters CekMachineCosts fun (CekValue uni fun ann) → Term Name uni fun ann → Either (CekEvaluationException Name uni fun) a Source #

Unlift a value using the CEK machine. *THIS FUNCTION IS PARTIAL if the input term contains free variables*

typecheckAnd ∷ (MonadError (Error uni fun ()) m, Typecheckable uni fun, GEq uni, Closed uni, uni `Everywhere` ExMemoryUsage) ⇒ BuiltinSemanticsVariant fun → (MachineParameters CekMachineCosts fun (CekValue uni fun ()) → Term Name uni fun () → a) → CostingPart uni fun → Term TyName Name uni fun () → m a Source #

Type check and evaluate a term.

typecheckEvaluateCek ∷ (MonadError (Error uni fun ()) m, Typecheckable uni fun, GEq uni, uni `Everywhere` ExMemoryUsage, PrettyUni uni, Pretty fun) ⇒ BuiltinSemanticsVariant fun → CostingPart uni fun → Term TyName Name uni fun () → m (EvaluationResult (Term Name uni fun ()), [Text]) Source #

Type check and evaluate a term, logging enabled.

typecheckEvaluateCekNoEmit ∷ (MonadError (Error uni fun ()) m, Typecheckable uni fun, GEq uni, uni `Everywhere` ExMemoryUsage, PrettyUni uni, Pretty fun) ⇒ BuiltinSemanticsVariant fun → CostingPart uni fun → Term TyName Name uni fun () → m (EvaluationResult (Term Name uni fun ())) Source #

Type check and evaluate a term, logging disabled.

typecheckReadKnownCek ∷ (MonadError (Error uni fun ()) m, Typecheckable uni fun, GEq uni, uni `Everywhere` ExMemoryUsage, PrettyUni uni, Pretty fun, ReadKnown (Term Name uni fun ()) a) ⇒ BuiltinSemanticsVariant fun → CostingPart uni fun → Term TyName Name uni fun () → m (Either (CekEvaluationException Name uni fun) a) Source #

Type check and convert a Plutus Core term to a Haskell value.