Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Evaluation.Builtins.Common
Synopsis
- unsafeSplitStructuralOperational ∷ (PrettyPlc structural, PrettyPlc term, Typeable structural, Typeable term) ⇒ Either (EvaluationException structural operational term) a → EvaluationResult a
- evaluateCek ∷ ∀ (uni ∷ Type → Type) 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])
- evaluateCekNoEmit ∷ ∀ (uni ∷ Type → Type) 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 ())
- readKnownCek ∷ ∀ (uni ∷ Type → Type) 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
- 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
- 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])
- 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 ()))
- 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)
- type PlcTerm = Term TyName Name DefaultUni DefaultFun ()
- type UplcTerm = Term Name DefaultUni DefaultFun ()
- data CekResult
- = TypeCheckError PlcError
- | CekError
- | CekSuccess UplcTerm
- evalTerm ∷ PlcTerm → CekResult
- mkApp1 ∷ DefaultFun → PlcTerm → PlcTerm
- mkApp2 ∷ DefaultFun → PlcTerm → PlcTerm → PlcTerm
- ok ∷ PlcTerm → Property
- fails ∷ PlcTerm → Property
- evalOkEq ∷ PlcTerm → PlcTerm → Property
- integer ∷ Integer → PlcTerm
- bytestring ∷ ByteString → PlcTerm
- zero ∷ PlcTerm
- one ∷ PlcTerm
- true ∷ PlcTerm
- false ∷ PlcTerm
- cekSuccessFalse ∷ CekResult
- cekSuccessTrue ∷ CekResult
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 ∷ Type → Type) 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 ∷ Type → Type) 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 ∷ Type → Type) 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.
type PlcTerm = Term TyName Name DefaultUni DefaultFun () Source #
type UplcTerm = Term Name DefaultUni DefaultFun () Source #