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

module Cardano.Ledger.Babbage.Rules.Delegs () where

import Cardano.Ledger.Babbage.Era (BabbageEra)
import Cardano.Ledger.Babbage.Rules.Delpl ()
import Cardano.Ledger.Core
import qualified Cardano.Ledger.Shelley.Rules as Shelley

type instance EraRuleFailure "DELEGS" BabbageEra = Shelley.ShelleyDelegsPredFailure BabbageEra

instance InjectRuleFailure "DELEGS" Shelley.ShelleyDelegsPredFailure BabbageEra

instance InjectRuleFailure "DELEGS" Shelley.ShelleyDelplPredFailure BabbageEra where
  injectFailure :: ShelleyDelplPredFailure BabbageEra
-> EraRuleFailure "DELEGS" BabbageEra
injectFailure = PredicateFailure (EraRule "DELPL" BabbageEra)
-> ShelleyDelegsPredFailure BabbageEra
ShelleyDelplPredFailure BabbageEra
-> EraRuleFailure "DELEGS" BabbageEra
forall era.
PredicateFailure (EraRule "DELPL" era)
-> ShelleyDelegsPredFailure era
Shelley.DelplFailure

instance InjectRuleFailure "DELEGS" Shelley.ShelleyPoolPredFailure BabbageEra where
  injectFailure :: ShelleyPoolPredFailure BabbageEra
-> EraRuleFailure "DELEGS" BabbageEra
injectFailure = PredicateFailure (EraRule "DELPL" BabbageEra)
-> ShelleyDelegsPredFailure BabbageEra
ShelleyDelplPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "DELPL" era)
-> ShelleyDelegsPredFailure era
Shelley.DelplFailure (ShelleyDelplPredFailure BabbageEra
 -> ShelleyDelegsPredFailure BabbageEra)
-> (ShelleyPoolPredFailure BabbageEra
    -> ShelleyDelplPredFailure BabbageEra)
-> ShelleyPoolPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyPoolPredFailure BabbageEra
-> EraRuleFailure "DELPL" BabbageEra
ShelleyPoolPredFailure BabbageEra
-> ShelleyDelplPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure

instance InjectRuleFailure "DELEGS" Shelley.ShelleyDelegPredFailure BabbageEra where
  injectFailure :: ShelleyDelegPredFailure BabbageEra
-> EraRuleFailure "DELEGS" BabbageEra
injectFailure = PredicateFailure (EraRule "DELPL" BabbageEra)
-> ShelleyDelegsPredFailure BabbageEra
ShelleyDelplPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra
forall era.
PredicateFailure (EraRule "DELPL" era)
-> ShelleyDelegsPredFailure era
Shelley.DelplFailure (ShelleyDelplPredFailure BabbageEra
 -> ShelleyDelegsPredFailure BabbageEra)
-> (ShelleyDelegPredFailure BabbageEra
    -> ShelleyDelplPredFailure BabbageEra)
-> ShelleyDelegPredFailure BabbageEra
-> ShelleyDelegsPredFailure BabbageEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyDelegPredFailure BabbageEra
-> EraRuleFailure "DELPL" BabbageEra
ShelleyDelegPredFailure BabbageEra
-> ShelleyDelplPredFailure BabbageEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure