content: {-# LANGUAGE DataKinds #-}
  {-# LANGUAGE DerivingStrategies #-}
  {-# LANGUAGE FlexibleContexts #-}
  {-# LANGUAGE FlexibleInstances #-}
  {-# LANGUAGE MultiParamTypeClasses #-}
  {-# LANGUAGE ScopedTypeVariables #-}
  {-# LANGUAGE TypeFamilies #-}
  {-# LANGUAGE UndecidableInstances #-}
  {-# OPTIONS_GHC -Wno-orphans #-}
  
  module Cardano.Ledger.Babbage.Rules.Bbody () where
  
  import Cardano.Ledger.Allegra.Rules (AllegraUtxoPredFailure)
  import Cardano.Ledger.Alonzo.Rules (
    AlonzoBbodyPredFailure (..),
    AlonzoUtxoPredFailure,
    AlonzoUtxosPredFailure,
    AlonzoUtxowPredFailure,
   )
  import Cardano.Ledger.Babbage.Era (BabbageEra)
  import Cardano.Ledger.Babbage.Rules.Ledgers ()
  import Cardano.Ledger.Babbage.Rules.Utxo (BabbageUtxoPredFailure)
  import Cardano.Ledger.Babbage.Rules.Utxow (BabbageUtxowPredFailure)
  import Cardano.Ledger.Core
  import Cardano.Ledger.Shelley.Rules (
    ShelleyBbodyPredFailure (..),
    ShelleyDelegPredFailure,
    ShelleyDelegsPredFailure,
    ShelleyDelplPredFailure,
    ShelleyLedgerPredFailure,
    ShelleyLedgersPredFailure,
    ShelleyPoolPredFailure,
    ShelleyPpupPredFailure,
    ShelleyUtxoPredFailure,
    ShelleyUtxowPredFailure,
   )
  
  type instance EraRuleFailure "BBODY" BabbageEra = AlonzoBbodyPredFailure BabbageEra
  
  instance InjectRuleFailure "BBODY" AlonzoBbodyPredFailure BabbageEra
  
  instance InjectRuleFailure "BBODY" ShelleyBbodyPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure
  
  instance InjectRuleFailure "BBODY" ShelleyLedgersPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure
  
  instance InjectRuleFailure "BBODY" ShelleyLedgerPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" BabbageUtxowPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" AlonzoUtxowPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" ShelleyUtxowPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" BabbageUtxoPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" AlonzoUtxoPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" AlonzoUtxosPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" ShelleyPpupPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" ShelleyUtxoPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" AllegraUtxoPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" ShelleyDelegsPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" ShelleyDelplPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" ShelleyPoolPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  
  instance InjectRuleFailure "BBODY" ShelleyDelegPredFailure BabbageEra where
    injectFailure = ShelleyInAlonzoBbodyPredFailure . LedgersFailure . injectFailure
  