{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.Rules.Certs () where import qualified Cardano.Ledger.Conway.Rules as Conway import Cardano.Ledger.Dijkstra.Core import Cardano.Ledger.Dijkstra.Era import Cardano.Ledger.Dijkstra.Rules.Cert () import Cardano.Ledger.Dijkstra.Rules.GovCert (DijkstraGovCertPredFailure) import qualified Cardano.Ledger.Shelley.Rules as Shelley import Control.State.Transition.Extended import GHC.Base (absurd) type instance EraRuleFailure "CERTS" DijkstraEra = Conway.ConwayCertsPredFailure DijkstraEra type instance EraRuleEvent "CERTS" DijkstraEra = Conway.ConwayCertsEvent DijkstraEra instance InjectRuleFailure "CERTS" Conway.ConwayCertsPredFailure DijkstraEra instance InjectRuleFailure "CERTS" Conway.ConwayCertPredFailure DijkstraEra where injectFailure :: ConwayCertPredFailure DijkstraEra -> EraRuleFailure "CERTS" DijkstraEra injectFailure = PredicateFailure (EraRule "CERT" DijkstraEra) -> ConwayCertsPredFailure DijkstraEra ConwayCertPredFailure DijkstraEra -> EraRuleFailure "CERTS" DijkstraEra forall era. PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era Conway.CertFailure instance InjectRuleFailure "CERTS" Conway.ConwayDelegPredFailure DijkstraEra where injectFailure :: ConwayDelegPredFailure DijkstraEra -> EraRuleFailure "CERTS" DijkstraEra injectFailure = PredicateFailure (EraRule "CERT" DijkstraEra) -> ConwayCertsPredFailure DijkstraEra ConwayCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra forall era. PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era Conway.CertFailure (ConwayCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra) -> (ConwayDelegPredFailure DijkstraEra -> ConwayCertPredFailure DijkstraEra) -> ConwayDelegPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayDelegPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra ConwayDelegPredFailure DijkstraEra -> ConwayCertPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "CERTS" Shelley.ShelleyPoolPredFailure DijkstraEra where injectFailure :: ShelleyPoolPredFailure DijkstraEra -> EraRuleFailure "CERTS" DijkstraEra injectFailure = PredicateFailure (EraRule "CERT" DijkstraEra) -> ConwayCertsPredFailure DijkstraEra ConwayCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra forall era. PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era Conway.CertFailure (ConwayCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra) -> (ShelleyPoolPredFailure DijkstraEra -> ConwayCertPredFailure DijkstraEra) -> ShelleyPoolPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ShelleyPoolPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra ShelleyPoolPredFailure DijkstraEra -> ConwayCertPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "CERTS" DijkstraGovCertPredFailure DijkstraEra where injectFailure :: DijkstraGovCertPredFailure DijkstraEra -> EraRuleFailure "CERTS" DijkstraEra injectFailure = PredicateFailure (EraRule "CERT" DijkstraEra) -> ConwayCertsPredFailure DijkstraEra ConwayCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra forall era. PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era Conway.CertFailure (ConwayCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra) -> (DijkstraGovCertPredFailure DijkstraEra -> ConwayCertPredFailure DijkstraEra) -> DijkstraGovCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . DijkstraGovCertPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra DijkstraGovCertPredFailure DijkstraEra -> ConwayCertPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance InjectRuleFailure "CERTS" Conway.ConwayGovCertPredFailure DijkstraEra where injectFailure :: ConwayGovCertPredFailure DijkstraEra -> EraRuleFailure "CERTS" DijkstraEra injectFailure = PredicateFailure (EraRule "CERT" DijkstraEra) -> ConwayCertsPredFailure DijkstraEra ConwayCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra forall era. PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era Conway.CertFailure (ConwayCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra) -> (ConwayGovCertPredFailure DijkstraEra -> ConwayCertPredFailure DijkstraEra) -> ConwayGovCertPredFailure DijkstraEra -> ConwayCertsPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayGovCertPredFailure DijkstraEra -> EraRuleFailure "CERT" DijkstraEra ConwayGovCertPredFailure DijkstraEra -> ConwayCertPredFailure DijkstraEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure instance ( Era era , STS (DijkstraCERT era) , Event (EraRule "CERT" era) ~ Conway.ConwayCertEvent era , PredicateFailure (EraRule "CERT" era) ~ Conway.ConwayCertPredFailure era ) => Embed (DijkstraCERT era) (Conway.ConwayCERTS era) where wrapFailed :: PredicateFailure (DijkstraCERT era) -> PredicateFailure (ConwayCERTS era) wrapFailed = PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era PredicateFailure (DijkstraCERT era) -> PredicateFailure (ConwayCERTS era) forall era. PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era Conway.CertFailure wrapEvent :: Event (DijkstraCERT era) -> Event (ConwayCERTS era) wrapEvent = Event (EraRule "CERT" era) -> ConwayCertsEvent era Event (DijkstraCERT era) -> Event (ConwayCERTS era) forall era. Event (EraRule "CERT" era) -> ConwayCertsEvent era Conway.CertEvent instance ( STS (Conway.ConwayDELEG era) , PredicateFailure (EraRule "DELEG" era) ~ Conway.ConwayDelegPredFailure era ) => Embed (Conway.ConwayDELEG era) (DijkstraCERT era) where wrapFailed :: PredicateFailure (ConwayDELEG era) -> PredicateFailure (DijkstraCERT era) wrapFailed = PredicateFailure (EraRule "DELEG" era) -> ConwayCertPredFailure era PredicateFailure (ConwayDELEG era) -> PredicateFailure (DijkstraCERT era) forall era. PredicateFailure (EraRule "DELEG" era) -> ConwayCertPredFailure era Conway.DelegFailure wrapEvent :: Event (ConwayDELEG era) -> Event (DijkstraCERT era) wrapEvent = Void -> ConwayCertEvent era Event (ConwayDELEG era) -> Event (DijkstraCERT era) forall a. Void -> a absurd instance ( STS (Shelley.ShelleyPOOL era) , PredicateFailure (EraRule "POOL" era) ~ Shelley.ShelleyPoolPredFailure era , Event (EraRule "POOL" era) ~ Shelley.PoolEvent era ) => Embed (Shelley.ShelleyPOOL era) (DijkstraCERT era) where wrapFailed :: PredicateFailure (ShelleyPOOL era) -> PredicateFailure (DijkstraCERT era) wrapFailed = PredicateFailure (EraRule "POOL" era) -> ConwayCertPredFailure era PredicateFailure (ShelleyPOOL era) -> PredicateFailure (DijkstraCERT era) forall era. PredicateFailure (EraRule "POOL" era) -> ConwayCertPredFailure era Conway.PoolFailure wrapEvent :: Event (ShelleyPOOL era) -> Event (DijkstraCERT era) wrapEvent = Event (EraRule "POOL" era) -> ConwayCertEvent era Event (ShelleyPOOL era) -> Event (DijkstraCERT era) forall era. Event (EraRule "POOL" era) -> ConwayCertEvent era Conway.PoolEvent instance ( STS (Conway.ConwayGOVCERT era) , PredicateFailure (EraRule "GOVCERT" era) ~ Conway.ConwayGovCertPredFailure era ) => Embed (Conway.ConwayGOVCERT era) (DijkstraCERT era) where wrapFailed :: PredicateFailure (ConwayGOVCERT era) -> PredicateFailure (DijkstraCERT era) wrapFailed = PredicateFailure (EraRule "GOVCERT" era) -> ConwayCertPredFailure era PredicateFailure (ConwayGOVCERT era) -> PredicateFailure (DijkstraCERT era) forall era. PredicateFailure (EraRule "GOVCERT" era) -> ConwayCertPredFailure era Conway.GovCertFailure wrapEvent :: Event (ConwayGOVCERT era) -> Event (DijkstraCERT era) wrapEvent = Void -> ConwayCertEvent era Event (ConwayGOVCERT era) -> Event (DijkstraCERT era) forall a. Void -> a absurd