{-# LANGUAGE DataKinds #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Dijkstra.TreeDiff ( module Test.Cardano.Ledger.Conway.TreeDiff, ) where import Cardano.Ledger.BaseTypes (StrictMaybe) import Cardano.Ledger.Dijkstra (DijkstraEra) import Cardano.Ledger.Dijkstra.Core ( AlonzoEraScript (..), AsItem, AsIx, Era, EraPParams (..), EraRule, EraTx (..), EraTxBody (..), EraTxCert (..), EraTxOut (..), PlutusScript, Value, ) import Cardano.Ledger.Dijkstra.PParams (DijkstraPParams) import Cardano.Ledger.Dijkstra.Rules ( DijkstraGovCertPredFailure, DijkstraGovPredFailure, DijkstraLedgerPredFailure, DijkstraUtxoPredFailure, DijkstraUtxowPredFailure, ) import Cardano.Ledger.Dijkstra.Scripts ( DijkstraNativeScript, DijkstraNativeScriptRaw, DijkstraPlutusPurpose, ) import Cardano.Ledger.Dijkstra.Tx (DijkstraTx (..), Tx (..)) import Cardano.Ledger.Dijkstra.TxBody (DijkstraTxBodyRaw (..)) import Cardano.Ledger.Dijkstra.TxCert import Cardano.Ledger.Dijkstra.TxInfo (DijkstraContextError) import Control.State.Transition ( STS (..), ) import Data.Functor.Identity (Identity) import qualified Data.TreeDiff.OMap as OMap import Test.Cardano.Ledger.Conway.TreeDiff (Expr (..), ToExpr) import Test.Cardano.Ledger.TreeDiff (ToExpr (..)) instance (forall a b. (ToExpr a, ToExpr b) => ToExpr (f a b)) => ToExpr (DijkstraPlutusPurpose f DijkstraEra) instance ToExpr (PlutusScript DijkstraEra) instance ToExpr (DijkstraNativeScript era) instance ToExpr (DijkstraNativeScriptRaw era) instance ToExpr (DijkstraPParams Identity DijkstraEra) instance ToExpr (DijkstraPParams StrictMaybe DijkstraEra) instance ToExpr (DijkstraTxBodyRaw l DijkstraEra) where toExpr :: DijkstraTxBodyRaw l DijkstraEra -> Expr toExpr = \case txBody :: DijkstraTxBodyRaw l DijkstraEra txBody@(DijkstraTxBodyRaw Set TxIn _ Set TxIn _ Set TxIn _ StrictSeq (Sized (TxOut DijkstraEra)) _ StrictMaybe (Sized (TxOut DijkstraEra)) _ StrictMaybe Coin _ OSet (TxCert DijkstraEra) _ Withdrawals _ Coin _ ValidityInterval _ OSet (Credential Guard) _ MultiAsset _ StrictMaybe ScriptIntegrityHash _ StrictMaybe TxAuxDataHash _ StrictMaybe Network _ VotingProcedures DijkstraEra _ OSet (ProposalProcedure DijkstraEra) _ StrictMaybe Coin _ Coin _ OMap TxId (Tx SubTx DijkstraEra) _) -> let DijkstraTxBodyRaw {OMap TxId (Tx SubTx DijkstraEra) OSet (TxCert DijkstraEra) OSet (ProposalProcedure DijkstraEra) OSet (Credential Guard) OSet (DijkstraTxCert DijkstraEra) Set TxIn StrictMaybe ScriptIntegrityHash StrictMaybe TxAuxDataHash StrictMaybe (Sized (TxOut DijkstraEra)) StrictMaybe (Sized (BabbageTxOut DijkstraEra)) StrictMaybe Coin StrictMaybe Network ValidityInterval Withdrawals VotingProcedures DijkstraEra Coin MultiAsset StrictSeq (Sized (TxOut DijkstraEra)) StrictSeq (Sized (BabbageTxOut DijkstraEra)) dtbrSpendInputs :: Set TxIn dtbrCollateralInputs :: Set TxIn dtbrReferenceInputs :: Set TxIn dtbrOutputs :: StrictSeq (Sized (BabbageTxOut DijkstraEra)) dtbrCollateralReturn :: StrictMaybe (Sized (BabbageTxOut DijkstraEra)) dtbrTotalCollateral :: StrictMaybe Coin dtbrCerts :: OSet (DijkstraTxCert DijkstraEra) dtbrWithdrawals :: Withdrawals dtbrFee :: Coin dtbrVldt :: ValidityInterval dtbrGuards :: OSet (Credential Guard) dtbrMint :: MultiAsset dtbrScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash dtbrAuxDataHash :: StrictMaybe TxAuxDataHash dtbrNetworkId :: StrictMaybe Network dtbrVotingProcedures :: VotingProcedures DijkstraEra dtbrProposalProcedures :: OSet (ProposalProcedure DijkstraEra) dtbrCurrentTreasuryValue :: StrictMaybe Coin dtbrTreasuryDonation :: Coin dtbrSubTransactions :: OMap TxId (Tx SubTx DijkstraEra) dtbrSubTransactions :: forall era. DijkstraTxBodyRaw TopTx era -> OMap TxId (Tx SubTx era) dtbrTreasuryDonation :: forall era. DijkstraTxBodyRaw TopTx era -> Coin dtbrCurrentTreasuryValue :: forall era. DijkstraTxBodyRaw TopTx era -> StrictMaybe Coin dtbrProposalProcedures :: forall era. DijkstraTxBodyRaw TopTx era -> OSet (ProposalProcedure era) dtbrVotingProcedures :: forall era. DijkstraTxBodyRaw TopTx era -> VotingProcedures era dtbrNetworkId :: forall era. DijkstraTxBodyRaw TopTx era -> StrictMaybe Network dtbrAuxDataHash :: forall era. DijkstraTxBodyRaw TopTx era -> StrictMaybe TxAuxDataHash dtbrScriptIntegrityHash :: forall era. DijkstraTxBodyRaw TopTx era -> StrictMaybe ScriptIntegrityHash dtbrMint :: forall era. DijkstraTxBodyRaw TopTx era -> MultiAsset dtbrGuards :: forall era. DijkstraTxBodyRaw TopTx era -> OSet (Credential Guard) dtbrVldt :: forall era. DijkstraTxBodyRaw TopTx era -> ValidityInterval dtbrFee :: forall era. DijkstraTxBodyRaw TopTx era -> Coin dtbrWithdrawals :: forall era. DijkstraTxBodyRaw TopTx era -> Withdrawals dtbrCerts :: forall era. DijkstraTxBodyRaw TopTx era -> OSet (TxCert era) dtbrTotalCollateral :: forall era. DijkstraTxBodyRaw TopTx era -> StrictMaybe Coin dtbrCollateralReturn :: forall era. DijkstraTxBodyRaw TopTx era -> StrictMaybe (Sized (TxOut era)) dtbrOutputs :: forall era. DijkstraTxBodyRaw TopTx era -> StrictSeq (Sized (TxOut era)) dtbrReferenceInputs :: forall era. DijkstraTxBodyRaw TopTx era -> Set TxIn dtbrCollateralInputs :: forall era. DijkstraTxBodyRaw TopTx era -> Set TxIn dtbrSpendInputs :: forall era. DijkstraTxBodyRaw TopTx era -> Set TxIn ..} = DijkstraTxBodyRaw l DijkstraEra txBody in FieldName -> OMap FieldName Expr -> Expr Rec FieldName "DijkstraTxBodyRaw" (OMap FieldName Expr -> Expr) -> OMap FieldName Expr -> Expr forall a b. (a -> b) -> a -> b $ [(FieldName, Expr)] -> OMap FieldName Expr forall k v. Ord k => [(k, v)] -> OMap k v OMap.fromList [ (FieldName "dtbrSpendInputs", Set TxIn -> Expr forall a. ToExpr a => a -> Expr toExpr Set TxIn dtbrSpendInputs) , (FieldName "dtbrCollateralInputs", Set TxIn -> Expr forall a. ToExpr a => a -> Expr toExpr Set TxIn dtbrCollateralInputs) , (FieldName "dtbrReferenceInputs", Set TxIn -> Expr forall a. ToExpr a => a -> Expr toExpr Set TxIn dtbrReferenceInputs) , (FieldName "dtbrOutputs", StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> Expr forall a. ToExpr a => a -> Expr toExpr StrictSeq (Sized (BabbageTxOut DijkstraEra)) dtbrOutputs) , (FieldName "dtbrCollateralReturn", StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe (Sized (BabbageTxOut DijkstraEra)) dtbrCollateralReturn) , (FieldName "dtbrTotalCollateral", StrictMaybe Coin -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe Coin dtbrTotalCollateral) , (FieldName "dtbrCerts", OSet (DijkstraTxCert DijkstraEra) -> Expr forall a. ToExpr a => a -> Expr toExpr OSet (DijkstraTxCert DijkstraEra) dtbrCerts) , (FieldName "dtbrWithdrawals", Withdrawals -> Expr forall a. ToExpr a => a -> Expr toExpr Withdrawals dtbrWithdrawals) , (FieldName "dtbrFee", Coin -> Expr forall a. ToExpr a => a -> Expr toExpr Coin dtbrFee) , (FieldName "dtbrVldt", ValidityInterval -> Expr forall a. ToExpr a => a -> Expr toExpr ValidityInterval dtbrVldt) , (FieldName "dtbrGuards", OSet (Credential Guard) -> Expr forall a. ToExpr a => a -> Expr toExpr OSet (Credential Guard) dtbrGuards) , (FieldName "dtbrMint", MultiAsset -> Expr forall a. ToExpr a => a -> Expr toExpr MultiAsset dtbrMint) , (FieldName "dtbrScriptIntegrityHash", StrictMaybe ScriptIntegrityHash -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe ScriptIntegrityHash dtbrScriptIntegrityHash) , (FieldName "dtbrAuxDataHash", StrictMaybe TxAuxDataHash -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe TxAuxDataHash dtbrAuxDataHash) , (FieldName "dtbrNetworkId", StrictMaybe Network -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe Network dtbrNetworkId) , (FieldName "dtbrVotingProcedures", VotingProcedures DijkstraEra -> Expr forall a. ToExpr a => a -> Expr toExpr VotingProcedures DijkstraEra dtbrVotingProcedures) , (FieldName "dtbrProposalProcedures", OSet (ProposalProcedure DijkstraEra) -> Expr forall a. ToExpr a => a -> Expr toExpr OSet (ProposalProcedure DijkstraEra) dtbrProposalProcedures) , (FieldName "dtbrCurrentTreasuryValue", StrictMaybe Coin -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe Coin dtbrCurrentTreasuryValue) , (FieldName "dtbrTreasuryDonation", Coin -> Expr forall a. ToExpr a => a -> Expr toExpr Coin dtbrTreasuryDonation) , (FieldName "dtbrSubTransactions", OMap TxId (Tx SubTx DijkstraEra) -> Expr forall a. ToExpr a => a -> Expr toExpr OMap TxId (Tx SubTx DijkstraEra) dtbrSubTransactions) ] txBody :: DijkstraTxBodyRaw l DijkstraEra txBody@(DijkstraSubTxBodyRaw Set TxIn _ Set TxIn _ StrictSeq (Sized (TxOut DijkstraEra)) _ OSet (TxCert DijkstraEra) _ Withdrawals _ ValidityInterval _ OSet (Credential Guard) _ MultiAsset _ StrictMaybe ScriptIntegrityHash _ StrictMaybe TxAuxDataHash _ StrictMaybe Network _ VotingProcedures DijkstraEra _ OSet (ProposalProcedure DijkstraEra) _ StrictMaybe Coin _ Coin _ Map (Credential Guard) (StrictMaybe (Data DijkstraEra)) _) -> let DijkstraSubTxBodyRaw {Map (Credential Guard) (StrictMaybe (Data DijkstraEra)) OSet (TxCert DijkstraEra) OSet (ProposalProcedure DijkstraEra) OSet (Credential Guard) OSet (DijkstraTxCert DijkstraEra) Set TxIn StrictMaybe ScriptIntegrityHash StrictMaybe TxAuxDataHash StrictMaybe Coin StrictMaybe Network ValidityInterval Withdrawals VotingProcedures DijkstraEra Coin MultiAsset StrictSeq (Sized (TxOut DijkstraEra)) StrictSeq (Sized (BabbageTxOut DijkstraEra)) dstbrSpendInputs :: Set TxIn dstbrReferenceInputs :: Set TxIn dstbrOutputs :: StrictSeq (Sized (BabbageTxOut DijkstraEra)) dstbrCerts :: OSet (DijkstraTxCert DijkstraEra) dstbrWithdrawals :: Withdrawals dstbrVldt :: ValidityInterval dstbrGuards :: OSet (Credential Guard) dstbrMint :: MultiAsset dstbrScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash dstbrAuxDataHash :: StrictMaybe TxAuxDataHash dstbrNetworkId :: StrictMaybe Network dstbrVotingProcedures :: VotingProcedures DijkstraEra dstbrProposalProcedures :: OSet (ProposalProcedure DijkstraEra) dstbrCurrentTreasuryValue :: StrictMaybe Coin dstbrTreasuryDonation :: Coin dstbrRequiredTopLevelGuards :: Map (Credential Guard) (StrictMaybe (Data DijkstraEra)) dstbrRequiredTopLevelGuards :: forall era. DijkstraTxBodyRaw SubTx era -> Map (Credential Guard) (StrictMaybe (Data era)) dstbrTreasuryDonation :: forall era. DijkstraTxBodyRaw SubTx era -> Coin dstbrCurrentTreasuryValue :: forall era. DijkstraTxBodyRaw SubTx era -> StrictMaybe Coin dstbrProposalProcedures :: forall era. DijkstraTxBodyRaw SubTx era -> OSet (ProposalProcedure era) dstbrVotingProcedures :: forall era. DijkstraTxBodyRaw SubTx era -> VotingProcedures era dstbrNetworkId :: forall era. DijkstraTxBodyRaw SubTx era -> StrictMaybe Network dstbrAuxDataHash :: forall era. DijkstraTxBodyRaw SubTx era -> StrictMaybe TxAuxDataHash dstbrScriptIntegrityHash :: forall era. DijkstraTxBodyRaw SubTx era -> StrictMaybe ScriptIntegrityHash dstbrMint :: forall era. DijkstraTxBodyRaw SubTx era -> MultiAsset dstbrGuards :: forall era. DijkstraTxBodyRaw SubTx era -> OSet (Credential Guard) dstbrVldt :: forall era. DijkstraTxBodyRaw SubTx era -> ValidityInterval dstbrWithdrawals :: forall era. DijkstraTxBodyRaw SubTx era -> Withdrawals dstbrCerts :: forall era. DijkstraTxBodyRaw SubTx era -> OSet (TxCert era) dstbrOutputs :: forall era. DijkstraTxBodyRaw SubTx era -> StrictSeq (Sized (TxOut era)) dstbrReferenceInputs :: forall era. DijkstraTxBodyRaw SubTx era -> Set TxIn dstbrSpendInputs :: forall era. DijkstraTxBodyRaw SubTx era -> Set TxIn ..} = DijkstraTxBodyRaw l DijkstraEra txBody in FieldName -> OMap FieldName Expr -> Expr Rec FieldName "DijkstraSubTxBodyRaw" (OMap FieldName Expr -> Expr) -> OMap FieldName Expr -> Expr forall a b. (a -> b) -> a -> b $ [(FieldName, Expr)] -> OMap FieldName Expr forall k v. Ord k => [(k, v)] -> OMap k v OMap.fromList [ (FieldName "dstbrSpendInputs", Set TxIn -> Expr forall a. ToExpr a => a -> Expr toExpr Set TxIn dstbrSpendInputs) , (FieldName "dstbrReferenceInputs", Set TxIn -> Expr forall a. ToExpr a => a -> Expr toExpr Set TxIn dstbrReferenceInputs) , (FieldName "dstbrOutputs", StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> Expr forall a. ToExpr a => a -> Expr toExpr StrictSeq (Sized (BabbageTxOut DijkstraEra)) dstbrOutputs) , (FieldName "dstbrCerts", OSet (DijkstraTxCert DijkstraEra) -> Expr forall a. ToExpr a => a -> Expr toExpr OSet (DijkstraTxCert DijkstraEra) dstbrCerts) , (FieldName "dstbrWithdrawals", Withdrawals -> Expr forall a. ToExpr a => a -> Expr toExpr Withdrawals dstbrWithdrawals) , (FieldName "dstbrVldt", ValidityInterval -> Expr forall a. ToExpr a => a -> Expr toExpr ValidityInterval dstbrVldt) , (FieldName "dstbrGuards", OSet (Credential Guard) -> Expr forall a. ToExpr a => a -> Expr toExpr OSet (Credential Guard) dstbrGuards) , (FieldName "dstbrMint", MultiAsset -> Expr forall a. ToExpr a => a -> Expr toExpr MultiAsset dstbrMint) , (FieldName "dstbrScriptIntegrityHash", StrictMaybe ScriptIntegrityHash -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe ScriptIntegrityHash dstbrScriptIntegrityHash) , (FieldName "dstbrAuxDataHash", StrictMaybe TxAuxDataHash -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe TxAuxDataHash dstbrAuxDataHash) , (FieldName "dstbrNetworkId", StrictMaybe Network -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe Network dstbrNetworkId) , (FieldName "dstbrVotingProcedures", VotingProcedures DijkstraEra -> Expr forall a. ToExpr a => a -> Expr toExpr VotingProcedures DijkstraEra dstbrVotingProcedures) , (FieldName "dstbrProposalProcedures", OSet (ProposalProcedure DijkstraEra) -> Expr forall a. ToExpr a => a -> Expr toExpr OSet (ProposalProcedure DijkstraEra) dstbrProposalProcedures) , (FieldName "dstbrCurrentTreasuryValue", StrictMaybe Coin -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe Coin dstbrCurrentTreasuryValue) , (FieldName "dstbrTreasuryDonation", Coin -> Expr forall a. ToExpr a => a -> Expr toExpr Coin dstbrTreasuryDonation) , (FieldName "dstbrRequiredTopLevelGuards", Coin -> Expr forall a. ToExpr a => a -> Expr toExpr Coin dstbrTreasuryDonation) ] instance ToExpr (TxBody l DijkstraEra) instance ToExpr (DijkstraTx l DijkstraEra) where toExpr :: DijkstraTx l DijkstraEra -> Expr toExpr = \case txBody :: DijkstraTx l DijkstraEra txBody@(DijkstraTx TxBody TopTx DijkstraEra _ TxWits DijkstraEra _ IsValid _ StrictMaybe (TxAuxData DijkstraEra) _) -> let DijkstraTx {StrictMaybe (TxAuxData DijkstraEra) StrictMaybe (AlonzoTxAuxData DijkstraEra) TxBody TopTx DijkstraEra TxWits DijkstraEra AlonzoTxWits DijkstraEra IsValid dtBody :: TxBody TopTx DijkstraEra dtWits :: AlonzoTxWits DijkstraEra dtIsValid :: IsValid dtAuxData :: StrictMaybe (AlonzoTxAuxData DijkstraEra) dtAuxData :: forall era. DijkstraTx TopTx era -> StrictMaybe (TxAuxData era) dtIsValid :: forall era. DijkstraTx TopTx era -> IsValid dtWits :: forall era. DijkstraTx TopTx era -> TxWits era dtBody :: forall era. DijkstraTx TopTx era -> TxBody TopTx era ..} = DijkstraTx l DijkstraEra txBody in FieldName -> OMap FieldName Expr -> Expr Rec FieldName "DijkstraTx" (OMap FieldName Expr -> Expr) -> OMap FieldName Expr -> Expr forall a b. (a -> b) -> a -> b $ [(FieldName, Expr)] -> OMap FieldName Expr forall k v. Ord k => [(k, v)] -> OMap k v OMap.fromList [ (FieldName "dtBody", TxBody TopTx DijkstraEra -> Expr forall a. ToExpr a => a -> Expr toExpr TxBody TopTx DijkstraEra dtBody) , (FieldName "dtWits", AlonzoTxWits DijkstraEra -> Expr forall a. ToExpr a => a -> Expr toExpr AlonzoTxWits DijkstraEra dtWits) , (FieldName "dtIsValid", IsValid -> Expr forall a. ToExpr a => a -> Expr toExpr IsValid dtIsValid) , (FieldName "dtAuxData", StrictMaybe (AlonzoTxAuxData DijkstraEra) -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe (AlonzoTxAuxData DijkstraEra) dtAuxData) ] txBody :: DijkstraTx l DijkstraEra txBody@(DijkstraSubTx TxBody SubTx DijkstraEra _ TxWits DijkstraEra _ StrictMaybe (TxAuxData DijkstraEra) _) -> let DijkstraSubTx {StrictMaybe (TxAuxData DijkstraEra) StrictMaybe (AlonzoTxAuxData DijkstraEra) TxBody SubTx DijkstraEra TxWits DijkstraEra AlonzoTxWits DijkstraEra dstBody :: TxBody SubTx DijkstraEra dstWits :: AlonzoTxWits DijkstraEra dstAuxData :: StrictMaybe (AlonzoTxAuxData DijkstraEra) dstAuxData :: forall era. DijkstraTx SubTx era -> StrictMaybe (TxAuxData era) dstWits :: forall era. DijkstraTx SubTx era -> TxWits era dstBody :: forall era. DijkstraTx SubTx era -> TxBody SubTx era ..} = DijkstraTx l DijkstraEra txBody in FieldName -> OMap FieldName Expr -> Expr Rec FieldName "DijkstraSubTx" (OMap FieldName Expr -> Expr) -> OMap FieldName Expr -> Expr forall a b. (a -> b) -> a -> b $ [(FieldName, Expr)] -> OMap FieldName Expr forall k v. Ord k => [(k, v)] -> OMap k v OMap.fromList [ (FieldName "dstBody", TxBody SubTx DijkstraEra -> Expr forall a. ToExpr a => a -> Expr toExpr TxBody SubTx DijkstraEra dstBody) , (FieldName "dstWits", AlonzoTxWits DijkstraEra -> Expr forall a. ToExpr a => a -> Expr toExpr AlonzoTxWits DijkstraEra dstWits) , (FieldName "dstAuxData", StrictMaybe (AlonzoTxAuxData DijkstraEra) -> Expr forall a. ToExpr a => a -> Expr toExpr StrictMaybe (AlonzoTxAuxData DijkstraEra) dstAuxData) ] deriving newtype instance ToExpr (Tx l DijkstraEra) instance ToExpr DijkstraDelegCert instance ToExpr (DijkstraTxCert era) instance ( Era era , ToExpr (PParamsHKD StrictMaybe era) , ToExpr (PlutusPurpose AsIx era) , ToExpr (PlutusPurpose AsItem era) , ToExpr (TxCert era) , ToExpr (TxOut era) ) => ToExpr (DijkstraContextError era) instance ( Era era , ToExpr (PredicateFailure (EraRule "UTXO" era)) , ToExpr (PlutusPurpose AsIx era) , ToExpr (PlutusPurpose AsItem era) , ToExpr (TxCert era) ) => ToExpr (DijkstraUtxowPredFailure era) instance ( ToExpr (PredicateFailure (EraRule "UTXOW" era)) , ToExpr (PredicateFailure (EraRule "GOV" era)) , ToExpr (PredicateFailure (EraRule "CERTS" era)) ) => ToExpr (DijkstraLedgerPredFailure era) instance ( ToExpr (Value era) , ToExpr (TxOut era) , ToExpr (PredicateFailure (EraRule "UTXOS" era)) ) => ToExpr (DijkstraUtxoPredFailure era) instance (EraPParams era, ToExpr (PParamsHKD StrictMaybe era)) => ToExpr (DijkstraGovPredFailure era) instance ToExpr (DijkstraGovCertPredFailure era)