{-# LANGUAGE DataKinds #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.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.Rules ( ConwayCertPredFailure, ConwayCertsPredFailure, ConwayDelegPredFailure, ConwayGovCertPredFailure, ConwayGovPredFailure, ConwayLedgerPredFailure, ConwayUtxoPredFailure, ConwayUtxosPredFailure, ConwayUtxowPredFailure, ) import Cardano.Ledger.Dijkstra.Core (EraRuleEvent, EraRuleFailure, InjectRuleFailure (..)) import Cardano.Ledger.Dijkstra.Era (DijkstraEra) import Cardano.Ledger.Dijkstra.Rules.Ledger () import Cardano.Ledger.Shelley.Rules ( ShelleyLedgersEvent, ShelleyLedgersPredFailure (..), ShelleyPoolPredFailure, ShelleyUtxoPredFailure, ShelleyUtxowPredFailure, ) type instance EraRuleFailure "LEDGERS" DijkstraEra = ShelleyLedgersPredFailure DijkstraEra type instance EraRuleEvent "LEDGERS" DijkstraEra = ShelleyLedgersEvent DijkstraEra instance InjectRuleFailure "LEDGERS" ShelleyLedgersPredFailure DijkstraEra instance InjectRuleFailure "LEDGERS" ConwayLedgerPredFailure DijkstraEra where injectFailure :: ConwayLedgerPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure instance InjectRuleFailure "LEDGERS" ConwayUtxowPredFailure DijkstraEra where injectFailure :: ConwayUtxowPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ConwayUtxowPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ConwayUtxowPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayUtxowPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ConwayUtxowPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" BabbageUtxowPredFailure DijkstraEra where injectFailure :: BabbageUtxowPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (BabbageUtxowPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> BabbageUtxowPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . BabbageUtxowPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra BabbageUtxowPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" AlonzoUtxowPredFailure DijkstraEra where injectFailure :: AlonzoUtxowPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (AlonzoUtxowPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> AlonzoUtxowPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . AlonzoUtxowPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra AlonzoUtxowPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ShelleyUtxowPredFailure DijkstraEra where injectFailure :: ShelleyUtxowPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ShelleyUtxowPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ShelleyUtxowPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ShelleyUtxowPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ShelleyUtxowPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ConwayUtxoPredFailure DijkstraEra where injectFailure :: ConwayUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ConwayUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ConwayUtxoPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ConwayUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" BabbageUtxoPredFailure DijkstraEra where injectFailure :: BabbageUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (BabbageUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> BabbageUtxoPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . BabbageUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra BabbageUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" AlonzoUtxoPredFailure DijkstraEra where injectFailure :: AlonzoUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (AlonzoUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> AlonzoUtxoPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . AlonzoUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra AlonzoUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" AlonzoUtxosPredFailure DijkstraEra where injectFailure :: AlonzoUtxosPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (AlonzoUtxosPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> AlonzoUtxosPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . AlonzoUtxosPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra AlonzoUtxosPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ConwayUtxosPredFailure DijkstraEra where injectFailure :: ConwayUtxosPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ConwayUtxosPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ConwayUtxosPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayUtxosPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ConwayUtxosPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ShelleyUtxoPredFailure DijkstraEra where injectFailure :: ShelleyUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ShelleyUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ShelleyUtxoPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ShelleyUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ShelleyUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" AllegraUtxoPredFailure DijkstraEra where injectFailure :: AllegraUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (AllegraUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> AllegraUtxoPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . AllegraUtxoPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra AllegraUtxoPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ConwayCertsPredFailure DijkstraEra where injectFailure :: ConwayCertsPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ConwayCertsPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ConwayCertsPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayCertsPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ConwayCertsPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ConwayCertPredFailure DijkstraEra where injectFailure :: ConwayCertPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ConwayCertPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ConwayCertPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayCertPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ConwayCertPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ConwayDelegPredFailure DijkstraEra where injectFailure :: ConwayDelegPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ConwayDelegPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ConwayDelegPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayDelegPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ConwayDelegPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ShelleyPoolPredFailure DijkstraEra where injectFailure :: ShelleyPoolPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ShelleyPoolPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ShelleyPoolPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ShelleyPoolPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ShelleyPoolPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ConwayGovCertPredFailure DijkstraEra where injectFailure :: ConwayGovCertPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ConwayGovCertPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ConwayGovCertPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayGovCertPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ConwayGovCertPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "LEDGERS" ConwayGovPredFailure DijkstraEra where injectFailure :: ConwayGovPredFailure DijkstraEra -> EraRuleFailure "LEDGERS" DijkstraEra injectFailure = PredicateFailure (EraRule "LEDGER" DijkstraEra) -> ShelleyLedgersPredFailure DijkstraEra ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall era. PredicateFailure (EraRule "LEDGER" era) -> ShelleyLedgersPredFailure era LedgerFailure (ConwayLedgerPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra) -> (ConwayGovPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra) -> ConwayGovPredFailure DijkstraEra -> ShelleyLedgersPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayGovPredFailure DijkstraEra -> EraRuleFailure "LEDGER" DijkstraEra ConwayGovPredFailure DijkstraEra -> ConwayLedgerPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure