{-# LANGUAGE DataKinds #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.Rules.Cert () where import Cardano.Ledger.Conway.Rules ( ConwayCertEvent, ConwayCertPredFailure (..), ConwayDelegPredFailure, ConwayGovCertPredFailure, ) import Cardano.Ledger.Dijkstra.Core (EraRuleEvent, EraRuleFailure, InjectRuleFailure (..)) import Cardano.Ledger.Dijkstra.Era (DijkstraEra) import Cardano.Ledger.Shelley.Rules (ShelleyPoolPredFailure) type instance EraRuleFailure "CERT" DijkstraEra = ConwayCertPredFailure DijkstraEra type instance EraRuleEvent "CERT" DijkstraEra = ConwayCertEvent DijkstraEra instance InjectRuleFailure "CERT" ConwayCertPredFailure DijkstraEra instance InjectRuleFailure "CERT" ConwayDelegPredFailure DijkstraEra where injectFailure :: ConwayDelegPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra injectFailure = PredicateFailure (EraRule "DELEG" DijkstraEra) -> ConwayCertPredFailure DijkstraEra ConwayDelegPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra forall era. PredicateFailure (EraRule "DELEG" era) -> ConwayCertPredFailure era DelegFailure instance InjectRuleFailure "CERT" ShelleyPoolPredFailure DijkstraEra where injectFailure :: ShelleyPoolPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra injectFailure = PredicateFailure (EraRule "POOL" DijkstraEra) -> ConwayCertPredFailure DijkstraEra ShelleyPoolPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra forall era. PredicateFailure (EraRule "POOL" era) -> ConwayCertPredFailure era PoolFailure instance InjectRuleFailure "CERT" ConwayGovCertPredFailure DijkstraEra where injectFailure :: ConwayGovCertPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra injectFailure = PredicateFailure (EraRule "GOVCERT" DijkstraEra) -> ConwayCertPredFailure DijkstraEra ConwayGovCertPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra forall era. PredicateFailure (EraRule "GOVCERT" era) -> ConwayCertPredFailure era GovCertFailure