{-# LANGUAGE DataKinds #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.Rules.Utxo () where import Cardano.Ledger.Allegra.Rules (shelleyToAllegraUtxoPredFailure) import qualified Cardano.Ledger.Allegra.Rules as Allegra import Cardano.Ledger.Alonzo.Rules (AlonzoUtxoEvent, AlonzoUtxoPredFailure, AlonzoUtxosPredFailure) import qualified Cardano.Ledger.Alonzo.Rules as Alonzo import Cardano.Ledger.Babbage.Rules (BabbageUtxoPredFailure) import Cardano.Ledger.Conway.Rules ( ConwayUtxoPredFailure (..), ConwayUtxosPredFailure, allegraToConwayUtxoPredFailure, alonzoToConwayUtxoPredFailure, babbageToConwayUtxoPredFailure, ) import Cardano.Ledger.Dijkstra.Core (EraRuleEvent, EraRuleFailure, InjectRuleFailure (..)) import Cardano.Ledger.Dijkstra.Era (DijkstraEra) import Cardano.Ledger.Dijkstra.Rules.Utxos () import Cardano.Ledger.Shelley.Rules (ShelleyUtxoPredFailure) type instance EraRuleFailure "UTXO" DijkstraEra = ConwayUtxoPredFailure DijkstraEra type instance EraRuleEvent "UTXO" DijkstraEra = AlonzoUtxoEvent DijkstraEra instance InjectRuleFailure "UTXO" ConwayUtxoPredFailure DijkstraEra instance InjectRuleFailure "UTXO" BabbageUtxoPredFailure DijkstraEra where injectFailure :: BabbageUtxoPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra injectFailure = BabbageUtxoPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra BabbageUtxoPredFailure DijkstraEra -> ConwayUtxoPredFailure DijkstraEra forall era. BabbageUtxoPredFailure era -> ConwayUtxoPredFailure era babbageToConwayUtxoPredFailure instance InjectRuleFailure "UTXO" AlonzoUtxoPredFailure DijkstraEra where injectFailure :: AlonzoUtxoPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra injectFailure = AlonzoUtxoPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra AlonzoUtxoPredFailure DijkstraEra -> ConwayUtxoPredFailure DijkstraEra forall era. AlonzoUtxoPredFailure era -> ConwayUtxoPredFailure era alonzoToConwayUtxoPredFailure instance InjectRuleFailure "UTXO" ShelleyUtxoPredFailure DijkstraEra where injectFailure :: ShelleyUtxoPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra injectFailure = AllegraUtxoPredFailure DijkstraEra -> ConwayUtxoPredFailure DijkstraEra forall era. (EraRuleFailure "PPUP" era ~ VoidEraRule "PPUP" era) => AllegraUtxoPredFailure era -> ConwayUtxoPredFailure era allegraToConwayUtxoPredFailure (AllegraUtxoPredFailure DijkstraEra -> ConwayUtxoPredFailure DijkstraEra) -> (ShelleyUtxoPredFailure DijkstraEra -> AllegraUtxoPredFailure DijkstraEra) -> ShelleyUtxoPredFailure DijkstraEra -> ConwayUtxoPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ShelleyUtxoPredFailure DijkstraEra -> AllegraUtxoPredFailure DijkstraEra forall era. ShelleyUtxoPredFailure era -> AllegraUtxoPredFailure era shelleyToAllegraUtxoPredFailure instance InjectRuleFailure "UTXO" Allegra.AllegraUtxoPredFailure DijkstraEra where injectFailure :: AllegraUtxoPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra injectFailure = AllegraUtxoPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra AllegraUtxoPredFailure DijkstraEra -> ConwayUtxoPredFailure DijkstraEra forall era. (EraRuleFailure "PPUP" era ~ VoidEraRule "PPUP" era) => AllegraUtxoPredFailure era -> ConwayUtxoPredFailure era allegraToConwayUtxoPredFailure instance InjectRuleFailure "UTXO" ConwayUtxosPredFailure DijkstraEra where injectFailure :: ConwayUtxosPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra injectFailure = PredicateFailure (EraRule "UTXOS" DijkstraEra) -> ConwayUtxoPredFailure DijkstraEra ConwayUtxosPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra forall era. PredicateFailure (EraRule "UTXOS" era) -> ConwayUtxoPredFailure era UtxosFailure instance InjectRuleFailure "UTXO" AlonzoUtxosPredFailure DijkstraEra where injectFailure :: AlonzoUtxosPredFailure DijkstraEra -> EraRuleFailure "UTXO" DijkstraEra injectFailure = AlonzoUtxoPredFailure DijkstraEra -> ConwayUtxoPredFailure DijkstraEra forall era. AlonzoUtxoPredFailure era -> ConwayUtxoPredFailure era alonzoToConwayUtxoPredFailure (AlonzoUtxoPredFailure DijkstraEra -> ConwayUtxoPredFailure DijkstraEra) -> (AlonzoUtxosPredFailure DijkstraEra -> AlonzoUtxoPredFailure DijkstraEra) -> AlonzoUtxosPredFailure DijkstraEra -> ConwayUtxoPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . PredicateFailure (EraRule "UTXOS" DijkstraEra) -> AlonzoUtxoPredFailure DijkstraEra ConwayUtxosPredFailure DijkstraEra -> AlonzoUtxoPredFailure DijkstraEra forall era. PredicateFailure (EraRule "UTXOS" era) -> AlonzoUtxoPredFailure era Alonzo.UtxosFailure (ConwayUtxosPredFailure DijkstraEra -> AlonzoUtxoPredFailure DijkstraEra) -> (AlonzoUtxosPredFailure DijkstraEra -> ConwayUtxosPredFailure DijkstraEra) -> AlonzoUtxosPredFailure DijkstraEra -> AlonzoUtxoPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . AlonzoUtxosPredFailure DijkstraEra -> EraRuleFailure "UTXOS" DijkstraEra AlonzoUtxosPredFailure DijkstraEra -> ConwayUtxosPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure