| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
PlutusCore.Evaluation.Machine.Exception
Description
The exceptions that an abstract machine can throw.
Synopsis
- newtype UnliftingError = UnliftingErrorE Text
 - class AsUnliftingError r where
- _UnliftingError :: Prism' r UnliftingError
 - _UnliftingErrorE :: Prism' r Text
 
 - data MachineError fun
- = NonPolymorphicInstantiationMachineError
 - | NonWrapUnwrappedMachineError
 - | NonFunctionalApplicationMachineError
 - | OpenTermEvaluatedMachineError
 - | UnliftingMachineError UnliftingError
 - | BuiltinTermArgumentExpectedMachineError
 - | UnexpectedBuiltinTermArgumentMachineError
 - | EmptyBuiltinArityMachineError
 - | UnknownBuiltin fun
 
 - class AsMachineError r fun | r -> fun where
- _MachineError :: Prism' r (MachineError fun)
 - _NonPolymorphicInstantiationMachineError :: Prism' r ()
 - _NonWrapUnwrappedMachineError :: Prism' r ()
 - _NonFunctionalApplicationMachineError :: Prism' r ()
 - _OpenTermEvaluatedMachineError :: Prism' r ()
 - _UnliftingMachineError :: Prism' r UnliftingError
 - _BuiltinTermArgumentExpectedMachineError :: Prism' r ()
 - _UnexpectedBuiltinTermArgumentMachineError :: Prism' r ()
 - _EmptyBuiltinArityMachineError :: Prism' r ()
 - _UnknownBuiltin :: Prism' r fun
 
 - data EvaluationError user internal
- = InternalEvaluationError internal
 - | UserEvaluationError user
 
 - class AsEvaluationError r user internal | r -> user internal where
- _EvaluationError :: Prism' r (EvaluationError user internal)
 - _InternalEvaluationError :: Prism' r internal
 - _UserEvaluationError :: Prism' r user
 
 - data ErrorWithCause err cause = ErrorWithCause {}
 - type EvaluationException user internal = ErrorWithCause (EvaluationError user internal)
 - mapCauseInMachineException :: (term1 -> term2) -> EvaluationException user (MachineError fun) term1 -> EvaluationException user (MachineError fun) term2
 - throwing_ :: MonadError e m => AReview e () -> m x
 - throwingWithCause :: forall exc e t term m x. (exc ~ ErrorWithCause e term, MonadError exc m) => AReview e t -> t -> Maybe term -> m x
 - extractEvaluationResult :: Either (EvaluationException user internal term) a -> Either (ErrorWithCause internal term) (EvaluationResult a)
 - unsafeExtractEvaluationResult :: (PrettyPlc internal, PrettyPlc term, Typeable internal, Typeable term) => Either (EvaluationException user internal term) a -> EvaluationResult a
 
Documentation
newtype UnliftingError Source #
When unlifting of a PLC term into a Haskell value fails, this error is thrown.
Constructors
| UnliftingErrorE Text | 
Instances
class AsUnliftingError r where Source #
Minimal complete definition
Methods
_UnliftingError :: Prism' r UnliftingError Source #
_UnliftingErrorE :: Prism' r Text Source #
Instances
| AsUnliftingError UnliftingError Source # | |
Defined in PlutusCore.Evaluation.Machine.Exception Methods _UnliftingError :: Prism' UnliftingError UnliftingError Source # _UnliftingErrorE :: Prism' UnliftingError Text Source #  | |
| AsUnliftingError KnownTypeError Source # | |
Defined in PlutusCore.Builtin.KnownType Methods _UnliftingError :: Prism' KnownTypeError UnliftingError Source # _UnliftingErrorE :: Prism' KnownTypeError Text Source #  | |
| AsUnliftingError (MachineError fun) Source # | |
Defined in PlutusCore.Evaluation.Machine.Exception Methods _UnliftingError :: Prism' (MachineError fun) UnliftingError Source # _UnliftingErrorE :: Prism' (MachineError fun) Text Source #  | |
| AsUnliftingError internal => AsUnliftingError (EvaluationError user internal) Source # | |
Defined in PlutusCore.Evaluation.Machine.Exception Methods _UnliftingError :: Prism' (EvaluationError user internal) UnliftingError Source # _UnliftingErrorE :: Prism' (EvaluationError user internal) Text Source #  | |
data MachineError fun Source #
Errors which can occur during a run of an abstract machine.
Constructors
| NonPolymorphicInstantiationMachineError | An attempt to reduce a not immediately reducible type instantiation.  | 
| NonWrapUnwrappedMachineError | An attempt to unwrap a not wrapped term.  | 
| NonFunctionalApplicationMachineError | An attempt to reduce a not immediately reducible application.  | 
| OpenTermEvaluatedMachineError | An attempt to evaluate an open term.  | 
| UnliftingMachineError UnliftingError | An attempt to compute a constant application resulted in   | 
| BuiltinTermArgumentExpectedMachineError | A builtin expected a term argument, but something else was received  | 
| UnexpectedBuiltinTermArgumentMachineError | A builtin received a term argument when something else was expected  | 
| EmptyBuiltinArityMachineError | We've reached a state where a builtin instantiation or application is attempted when the arity is zero. In the absence of nullary builtins, this should be impossible. See the machine implementations for details.  | 
| UnknownBuiltin fun | 
Instances
class AsMachineError r fun | r -> fun where Source #
Minimal complete definition
Methods
_MachineError :: Prism' r (MachineError fun) Source #
_NonPolymorphicInstantiationMachineError :: Prism' r () Source #
_NonWrapUnwrappedMachineError :: Prism' r () Source #
_NonFunctionalApplicationMachineError :: Prism' r () Source #
_OpenTermEvaluatedMachineError :: Prism' r () Source #
_UnliftingMachineError :: Prism' r UnliftingError Source #
_BuiltinTermArgumentExpectedMachineError :: Prism' r () Source #
_UnexpectedBuiltinTermArgumentMachineError :: Prism' r () Source #
_EmptyBuiltinArityMachineError :: Prism' r () Source #
_UnknownBuiltin :: Prism' r fun Source #
Instances
data EvaluationError user internal Source #
The type of errors (all of them) which can occur during evaluation (some are used-caused, some are internal).
Constructors
| InternalEvaluationError internal | Indicates bugs.  | 
| UserEvaluationError user | Indicates user errors.  | 
Instances
class AsEvaluationError r user internal | r -> user internal where Source #
Minimal complete definition
Methods
_EvaluationError :: Prism' r (EvaluationError user internal) Source #
_InternalEvaluationError :: Prism' r internal Source #
_UserEvaluationError :: Prism' r user Source #
Instances
| AsEvaluationError (EvaluationError user internal) user internal Source # | |
Defined in PlutusCore.Evaluation.Machine.Exception Methods _EvaluationError :: Prism' (EvaluationError user internal) (EvaluationError user internal) Source # _InternalEvaluationError :: Prism' (EvaluationError user internal) internal Source # _UserEvaluationError :: Prism' (EvaluationError user internal) user Source #  | |
data ErrorWithCause err cause Source #
An error and (optionally) what caused it.
Constructors
| ErrorWithCause | |
Instances
type EvaluationException user internal = ErrorWithCause (EvaluationError user internal) Source #
mapCauseInMachineException :: (term1 -> term2) -> EvaluationException user (MachineError fun) term1 -> EvaluationException user (MachineError fun) term2 Source #
throwingWithCause :: forall exc e t term m x. (exc ~ ErrorWithCause e term, MonadError exc m) => AReview e t -> t -> Maybe term -> m x Source #
Prismatically throw an error and its (optional) cause.
extractEvaluationResult :: Either (EvaluationException user internal term) a -> Either (ErrorWithCause internal term) (EvaluationResult a) Source #
Turn any UserEvaluationError into an EvaluationFailure.
unsafeExtractEvaluationResult :: (PrettyPlc internal, PrettyPlc term, Typeable internal, Typeable term) => Either (EvaluationException user internal term) a -> EvaluationResult a Source #