{-# 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