{-# 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 (CERT era) , Event (EraRule "CERT" era) ~ Conway.ConwayCertEvent era , PredicateFailure (EraRule "CERT" era) ~ Conway.ConwayCertPredFailure era ) => Embed (CERT era) (Conway.CERTS era) where wrapFailed :: PredicateFailure (CERT era) -> PredicateFailure (CERTS era) wrapFailed = PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era PredicateFailure (CERT era) -> PredicateFailure (CERTS era) forall era. PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era Conway.CertFailure wrapEvent :: Event (CERT era) -> Event (CERTS era) wrapEvent = Event (EraRule "CERT" era) -> ConwayCertsEvent era Event (CERT era) -> Event (CERTS era) forall era. Event (EraRule "CERT" era) -> ConwayCertsEvent era Conway.CertEvent instance ( STS (Conway.DELEG era) , PredicateFailure (EraRule "DELEG" era) ~ Conway.ConwayDelegPredFailure era ) => Embed (Conway.DELEG era) (CERT era) where wrapFailed :: PredicateFailure (DELEG era) -> PredicateFailure (CERT era) wrapFailed = PredicateFailure (EraRule "DELEG" era) -> ConwayCertPredFailure era PredicateFailure (DELEG era) -> PredicateFailure (CERT era) forall era. PredicateFailure (EraRule "DELEG" era) -> ConwayCertPredFailure era Conway.DelegFailure wrapEvent :: Event (DELEG era) -> Event (CERT era) wrapEvent = Void -> ConwayCertEvent era Event (DELEG era) -> Event (CERT era) forall a. Void -> a absurd instance ( STS (Shelley.POOL era) , PredicateFailure (EraRule "POOL" era) ~ Shelley.ShelleyPoolPredFailure era , Event (EraRule "POOL" era) ~ Shelley.PoolEvent era ) => Embed (Shelley.POOL era) (CERT era) where wrapFailed :: PredicateFailure (POOL era) -> PredicateFailure (CERT era) wrapFailed = PredicateFailure (EraRule "POOL" era) -> ConwayCertPredFailure era PredicateFailure (POOL era) -> PredicateFailure (CERT era) forall era. PredicateFailure (EraRule "POOL" era) -> ConwayCertPredFailure era Conway.PoolFailure wrapEvent :: Event (POOL era) -> Event (CERT era) wrapEvent = Event (EraRule "POOL" era) -> ConwayCertEvent era Event (POOL era) -> Event (CERT era) forall era. Event (EraRule "POOL" era) -> ConwayCertEvent era Conway.PoolEvent instance ( STS (Conway.GOVCERT era) , PredicateFailure (EraRule "GOVCERT" era) ~ Conway.ConwayGovCertPredFailure era ) => Embed (Conway.GOVCERT era) (CERT era) where wrapFailed :: PredicateFailure (GOVCERT era) -> PredicateFailure (CERT era) wrapFailed = PredicateFailure (EraRule "GOVCERT" era) -> ConwayCertPredFailure era PredicateFailure (GOVCERT era) -> PredicateFailure (CERT era) forall era. PredicateFailure (EraRule "GOVCERT" era) -> ConwayCertPredFailure era Conway.GovCertFailure wrapEvent :: Event (GOVCERT era) -> Event (CERT era) wrapEvent = Void -> ConwayCertEvent era Event (GOVCERT era) -> Event (CERT era) forall a. Void -> a absurd