{-# LANGUAGE DataKinds #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Cardano.Ledger.Conway.Rules.Ledgers () where

import Cardano.Ledger.Allegra.Rules (AllegraUtxoPredFailure)
import Cardano.Ledger.Alonzo.Rules (
  AlonzoUtxoPredFailure,
  AlonzoUtxosPredFailure,
  AlonzoUtxowPredFailure,
 )
import Cardano.Ledger.Babbage.Rules (BabbageUtxoPredFailure, BabbageUtxowPredFailure)
import Cardano.Ledger.Conway.Era (ConwayEra)
import Cardano.Ledger.Conway.Rules.Cert (ConwayCertPredFailure)
import Cardano.Ledger.Conway.Rules.Certs (ConwayCertsPredFailure)
import Cardano.Ledger.Conway.Rules.Deleg (ConwayDelegPredFailure)
import Cardano.Ledger.Conway.Rules.Gov (ConwayGovPredFailure)
import Cardano.Ledger.Conway.Rules.GovCert (ConwayGovCertPredFailure)
import Cardano.Ledger.Conway.Rules.Ledger (ConwayLedgerPredFailure)
import Cardano.Ledger.Conway.Rules.Utxo (ConwayUtxoPredFailure)
import Cardano.Ledger.Conway.Rules.Utxos (ConwayUtxosPredFailure)
import Cardano.Ledger.Conway.Rules.Utxow (ConwayUtxowPredFailure)
import Cardano.Ledger.Core
import Cardano.Ledger.Shelley.Rules (
  ShelleyLedgersEvent,
  ShelleyLedgersPredFailure (..),
  ShelleyPoolPredFailure,
  ShelleyUtxoPredFailure,
  ShelleyUtxowPredFailure,
 )

type instance EraRuleFailure "LEDGERS" ConwayEra = ShelleyLedgersPredFailure ConwayEra

type instance EraRuleEvent "LEDGERS" ConwayEra = ShelleyLedgersEvent ConwayEra

instance InjectRuleFailure "LEDGERS" ShelleyLedgersPredFailure ConwayEra

instance InjectRuleFailure "LEDGERS" ConwayLedgerPredFailure ConwayEra where
  injectFailure :: ConwayLedgerPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure

instance InjectRuleFailure "LEDGERS" ConwayUtxowPredFailure ConwayEra where
  injectFailure :: ConwayUtxowPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ConwayUtxowPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ConwayUtxowPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayUtxowPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ConwayUtxowPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" BabbageUtxowPredFailure ConwayEra where
  injectFailure :: BabbageUtxowPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (BabbageUtxowPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> BabbageUtxowPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BabbageUtxowPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
BabbageUtxowPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" AlonzoUtxowPredFailure ConwayEra where
  injectFailure :: AlonzoUtxowPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (AlonzoUtxowPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> AlonzoUtxowPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxowPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
AlonzoUtxowPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ShelleyUtxowPredFailure ConwayEra where
  injectFailure :: ShelleyUtxowPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ShelleyUtxowPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ShelleyUtxowPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyUtxowPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ShelleyUtxowPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ConwayUtxoPredFailure ConwayEra where
  injectFailure :: ConwayUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ConwayUtxoPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ConwayUtxoPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ConwayUtxoPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" BabbageUtxoPredFailure ConwayEra where
  injectFailure :: BabbageUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (BabbageUtxoPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> BabbageUtxoPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BabbageUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
BabbageUtxoPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" AlonzoUtxoPredFailure ConwayEra where
  injectFailure :: AlonzoUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (AlonzoUtxoPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> AlonzoUtxoPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
AlonzoUtxoPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" AlonzoUtxosPredFailure ConwayEra where
  injectFailure :: AlonzoUtxosPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (AlonzoUtxosPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> AlonzoUtxosPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxosPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
AlonzoUtxosPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ConwayUtxosPredFailure ConwayEra where
  injectFailure :: ConwayUtxosPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ConwayUtxosPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ConwayUtxosPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayUtxosPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ConwayUtxosPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ShelleyUtxoPredFailure ConwayEra where
  injectFailure :: ShelleyUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ShelleyUtxoPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ShelleyUtxoPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ShelleyUtxoPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" AllegraUtxoPredFailure ConwayEra where
  injectFailure :: AllegraUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (AllegraUtxoPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> AllegraUtxoPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AllegraUtxoPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
AllegraUtxoPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ConwayCertsPredFailure ConwayEra where
  injectFailure :: ConwayCertsPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ConwayCertsPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ConwayCertsPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayCertsPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ConwayCertsPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ConwayCertPredFailure ConwayEra where
  injectFailure :: ConwayCertPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ConwayCertPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ConwayCertPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayCertPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ConwayCertPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ConwayDelegPredFailure ConwayEra where
  injectFailure :: ConwayDelegPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ConwayDelegPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ConwayDelegPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayDelegPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ConwayDelegPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ShelleyPoolPredFailure ConwayEra where
  injectFailure :: ShelleyPoolPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ShelleyPoolPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ShelleyPoolPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyPoolPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ShelleyPoolPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ConwayGovCertPredFailure ConwayEra where
  injectFailure :: ConwayGovCertPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ConwayGovCertPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ConwayGovCertPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayGovCertPredFailure ConwayEra
-> EraRuleFailure "LEDGER" ConwayEra
ConwayGovCertPredFailure ConwayEra
-> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "LEDGERS" ConwayGovPredFailure ConwayEra where
  injectFailure :: ConwayGovPredFailure ConwayEra
-> EraRuleFailure "LEDGERS" ConwayEra
injectFailure = PredicateFailure (EraRule "LEDGER" ConwayEra)
-> ShelleyLedgersPredFailure ConwayEra
ConwayLedgerPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure (ConwayLedgerPredFailure ConwayEra
 -> ShelleyLedgersPredFailure ConwayEra)
-> (ConwayGovPredFailure ConwayEra
    -> ConwayLedgerPredFailure ConwayEra)
-> ConwayGovPredFailure ConwayEra
-> ShelleyLedgersPredFailure ConwayEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayGovPredFailure ConwayEra -> EraRuleFailure "LEDGER" ConwayEra
ConwayGovPredFailure ConwayEra -> ConwayLedgerPredFailure ConwayEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure