{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE EmptyDataDeriving #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.Rules.SubGov ( DijkstraSUBGOV, DijkstraSubGovPredFailure (..), DijkstraSubGovEvent (..), ) where import Cardano.Ledger.BaseTypes ( ShelleyBase, ) import Cardano.Ledger.Binary ( DecCBOR (..), EncCBOR (..), ) import Cardano.Ledger.Conway.Core import Cardano.Ledger.Conway.Governance import Cardano.Ledger.Conway.Rules ( ConwayGovEvent (..), ConwayGovPredFailure (..), GovEnv, GovSignal, conwayGovTransition, ) import Cardano.Ledger.Conway.State (ConwayEraCertState) import Cardano.Ledger.Dijkstra.Era ( DijkstraEra, DijkstraSUBGOV, ) import Cardano.Ledger.Dijkstra.Rules.Gov (DijkstraGovPredFailure, conwayToDijkstraGovPredFailure) import Control.DeepSeq (NFData) import Control.State.Transition.Extended import GHC.Generics (Generic) import NoThunks.Class (NoThunks (..)) newtype DijkstraSubGovPredFailure era = DijkstraSubGovPredFailure (DijkstraGovPredFailure era) deriving ((forall x. DijkstraSubGovPredFailure era -> Rep (DijkstraSubGovPredFailure era) x) -> (forall x. Rep (DijkstraSubGovPredFailure era) x -> DijkstraSubGovPredFailure era) -> Generic (DijkstraSubGovPredFailure era) forall x. Rep (DijkstraSubGovPredFailure era) x -> DijkstraSubGovPredFailure era forall x. DijkstraSubGovPredFailure era -> Rep (DijkstraSubGovPredFailure era) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall era x. Rep (DijkstraSubGovPredFailure era) x -> DijkstraSubGovPredFailure era forall era x. DijkstraSubGovPredFailure era -> Rep (DijkstraSubGovPredFailure era) x $cfrom :: forall era x. DijkstraSubGovPredFailure era -> Rep (DijkstraSubGovPredFailure era) x from :: forall x. DijkstraSubGovPredFailure era -> Rep (DijkstraSubGovPredFailure era) x $cto :: forall era x. Rep (DijkstraSubGovPredFailure era) x -> DijkstraSubGovPredFailure era to :: forall x. Rep (DijkstraSubGovPredFailure era) x -> DijkstraSubGovPredFailure era Generic, DijkstraSubGovPredFailure era -> DijkstraSubGovPredFailure era -> Bool (DijkstraSubGovPredFailure era -> DijkstraSubGovPredFailure era -> Bool) -> (DijkstraSubGovPredFailure era -> DijkstraSubGovPredFailure era -> Bool) -> Eq (DijkstraSubGovPredFailure era) forall era. EraPParams era => DijkstraSubGovPredFailure era -> DijkstraSubGovPredFailure era -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall era. EraPParams era => DijkstraSubGovPredFailure era -> DijkstraSubGovPredFailure era -> Bool == :: DijkstraSubGovPredFailure era -> DijkstraSubGovPredFailure era -> Bool $c/= :: forall era. EraPParams era => DijkstraSubGovPredFailure era -> DijkstraSubGovPredFailure era -> Bool /= :: DijkstraSubGovPredFailure era -> DijkstraSubGovPredFailure era -> Bool Eq, Int -> DijkstraSubGovPredFailure era -> ShowS [DijkstraSubGovPredFailure era] -> ShowS DijkstraSubGovPredFailure era -> String (Int -> DijkstraSubGovPredFailure era -> ShowS) -> (DijkstraSubGovPredFailure era -> String) -> ([DijkstraSubGovPredFailure era] -> ShowS) -> Show (DijkstraSubGovPredFailure era) forall era. EraPParams era => Int -> DijkstraSubGovPredFailure era -> ShowS forall era. EraPParams era => [DijkstraSubGovPredFailure era] -> ShowS forall era. EraPParams era => DijkstraSubGovPredFailure era -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall era. EraPParams era => Int -> DijkstraSubGovPredFailure era -> ShowS showsPrec :: Int -> DijkstraSubGovPredFailure era -> ShowS $cshow :: forall era. EraPParams era => DijkstraSubGovPredFailure era -> String show :: DijkstraSubGovPredFailure era -> String $cshowList :: forall era. EraPParams era => [DijkstraSubGovPredFailure era] -> ShowS showList :: [DijkstraSubGovPredFailure era] -> ShowS Show, Context -> DijkstraSubGovPredFailure era -> IO (Maybe ThunkInfo) Proxy (DijkstraSubGovPredFailure era) -> String (Context -> DijkstraSubGovPredFailure era -> IO (Maybe ThunkInfo)) -> (Context -> DijkstraSubGovPredFailure era -> IO (Maybe ThunkInfo)) -> (Proxy (DijkstraSubGovPredFailure era) -> String) -> NoThunks (DijkstraSubGovPredFailure era) forall era. EraPParams era => Context -> DijkstraSubGovPredFailure era -> IO (Maybe ThunkInfo) forall era. EraPParams era => Proxy (DijkstraSubGovPredFailure era) -> String forall a. (Context -> a -> IO (Maybe ThunkInfo)) -> (Context -> a -> IO (Maybe ThunkInfo)) -> (Proxy a -> String) -> NoThunks a $cnoThunks :: forall era. EraPParams era => Context -> DijkstraSubGovPredFailure era -> IO (Maybe ThunkInfo) noThunks :: Context -> DijkstraSubGovPredFailure era -> IO (Maybe ThunkInfo) $cwNoThunks :: forall era. EraPParams era => Context -> DijkstraSubGovPredFailure era -> IO (Maybe ThunkInfo) wNoThunks :: Context -> DijkstraSubGovPredFailure era -> IO (Maybe ThunkInfo) $cshowTypeOf :: forall era. EraPParams era => Proxy (DijkstraSubGovPredFailure era) -> String showTypeOf :: Proxy (DijkstraSubGovPredFailure era) -> String NoThunks, DijkstraSubGovPredFailure era -> () (DijkstraSubGovPredFailure era -> ()) -> NFData (DijkstraSubGovPredFailure era) forall era. EraPParams era => DijkstraSubGovPredFailure era -> () forall a. (a -> ()) -> NFData a $crnf :: forall era. EraPParams era => DijkstraSubGovPredFailure era -> () rnf :: DijkstraSubGovPredFailure era -> () NFData, DijkstraSubGovPredFailure era -> Encoding (DijkstraSubGovPredFailure era -> Encoding) -> EncCBOR (DijkstraSubGovPredFailure era) forall era. EraPParams era => DijkstraSubGovPredFailure era -> Encoding forall a. (a -> Encoding) -> EncCBOR a $cencCBOR :: forall era. EraPParams era => DijkstraSubGovPredFailure era -> Encoding encCBOR :: DijkstraSubGovPredFailure era -> Encoding EncCBOR, Typeable (DijkstraSubGovPredFailure era) Typeable (DijkstraSubGovPredFailure era) => (forall s. Decoder s (DijkstraSubGovPredFailure era)) -> (forall s. Proxy (DijkstraSubGovPredFailure era) -> Decoder s ()) -> (Proxy (DijkstraSubGovPredFailure era) -> Text) -> DecCBOR (DijkstraSubGovPredFailure era) Proxy (DijkstraSubGovPredFailure era) -> Text forall s. Decoder s (DijkstraSubGovPredFailure era) forall a. Typeable a => (forall s. Decoder s a) -> (forall s. Proxy a -> Decoder s ()) -> (Proxy a -> Text) -> DecCBOR a forall s. Proxy (DijkstraSubGovPredFailure era) -> Decoder s () forall era. EraPParams era => Typeable (DijkstraSubGovPredFailure era) forall era. EraPParams era => Proxy (DijkstraSubGovPredFailure era) -> Text forall era s. EraPParams era => Decoder s (DijkstraSubGovPredFailure era) forall era s. EraPParams era => Proxy (DijkstraSubGovPredFailure era) -> Decoder s () $cdecCBOR :: forall era s. EraPParams era => Decoder s (DijkstraSubGovPredFailure era) decCBOR :: forall s. Decoder s (DijkstraSubGovPredFailure era) $cdropCBOR :: forall era s. EraPParams era => Proxy (DijkstraSubGovPredFailure era) -> Decoder s () dropCBOR :: forall s. Proxy (DijkstraSubGovPredFailure era) -> Decoder s () $clabel :: forall era. EraPParams era => Proxy (DijkstraSubGovPredFailure era) -> Text label :: Proxy (DijkstraSubGovPredFailure era) -> Text DecCBOR) type instance EraRuleFailure "SUBGOV" DijkstraEra = DijkstraSubGovPredFailure DijkstraEra type instance EraRuleEvent "SUBGOV" DijkstraEra = DijkstraSubGovEvent DijkstraEra instance InjectRuleFailure "SUBGOV" ConwayGovPredFailure DijkstraEra where injectFailure :: ConwayGovPredFailure DijkstraEra -> EraRuleFailure "SUBGOV" DijkstraEra injectFailure = DijkstraGovPredFailure DijkstraEra -> DijkstraSubGovPredFailure DijkstraEra forall era. DijkstraGovPredFailure era -> DijkstraSubGovPredFailure era DijkstraSubGovPredFailure (DijkstraGovPredFailure DijkstraEra -> DijkstraSubGovPredFailure DijkstraEra) -> (ConwayGovPredFailure DijkstraEra -> DijkstraGovPredFailure DijkstraEra) -> ConwayGovPredFailure DijkstraEra -> DijkstraSubGovPredFailure DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . ConwayGovPredFailure DijkstraEra -> DijkstraGovPredFailure DijkstraEra forall era. ConwayGovPredFailure era -> DijkstraGovPredFailure era conwayToDijkstraGovPredFailure instance InjectRuleFailure "SUBGOV" DijkstraSubGovPredFailure DijkstraEra newtype DijkstraSubGovEvent era = DijkstraSubGovEvent (ConwayGovEvent era) deriving ((forall x. DijkstraSubGovEvent era -> Rep (DijkstraSubGovEvent era) x) -> (forall x. Rep (DijkstraSubGovEvent era) x -> DijkstraSubGovEvent era) -> Generic (DijkstraSubGovEvent era) forall x. Rep (DijkstraSubGovEvent era) x -> DijkstraSubGovEvent era forall x. DijkstraSubGovEvent era -> Rep (DijkstraSubGovEvent era) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall era x. Rep (DijkstraSubGovEvent era) x -> DijkstraSubGovEvent era forall era x. DijkstraSubGovEvent era -> Rep (DijkstraSubGovEvent era) x $cfrom :: forall era x. DijkstraSubGovEvent era -> Rep (DijkstraSubGovEvent era) x from :: forall x. DijkstraSubGovEvent era -> Rep (DijkstraSubGovEvent era) x $cto :: forall era x. Rep (DijkstraSubGovEvent era) x -> DijkstraSubGovEvent era to :: forall x. Rep (DijkstraSubGovEvent era) x -> DijkstraSubGovEvent era Generic, DijkstraSubGovEvent era -> DijkstraSubGovEvent era -> Bool (DijkstraSubGovEvent era -> DijkstraSubGovEvent era -> Bool) -> (DijkstraSubGovEvent era -> DijkstraSubGovEvent era -> Bool) -> Eq (DijkstraSubGovEvent era) forall era. EraPParams era => DijkstraSubGovEvent era -> DijkstraSubGovEvent era -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall era. EraPParams era => DijkstraSubGovEvent era -> DijkstraSubGovEvent era -> Bool == :: DijkstraSubGovEvent era -> DijkstraSubGovEvent era -> Bool $c/= :: forall era. EraPParams era => DijkstraSubGovEvent era -> DijkstraSubGovEvent era -> Bool /= :: DijkstraSubGovEvent era -> DijkstraSubGovEvent era -> Bool Eq, DijkstraSubGovEvent era -> () (DijkstraSubGovEvent era -> ()) -> NFData (DijkstraSubGovEvent era) forall era. EraPParams era => DijkstraSubGovEvent era -> () forall a. (a -> ()) -> NFData a $crnf :: forall era. EraPParams era => DijkstraSubGovEvent era -> () rnf :: DijkstraSubGovEvent era -> () NFData) instance InjectRuleEvent "SUBGOV" DijkstraSubGovEvent DijkstraEra instance InjectRuleEvent "SUBGOV" ConwayGovEvent DijkstraEra where injectEvent :: ConwayGovEvent DijkstraEra -> EraRuleEvent "SUBGOV" DijkstraEra injectEvent = ConwayGovEvent DijkstraEra -> EraRuleEvent "SUBGOV" DijkstraEra ConwayGovEvent DijkstraEra -> DijkstraSubGovEvent DijkstraEra forall era. ConwayGovEvent era -> DijkstraSubGovEvent era DijkstraSubGovEvent instance ( ConwayEraCertState era , ConwayEraTxCert era , ConwayEraPParams era , ConwayEraGov era , EraRule "SUBGOV" era ~ DijkstraSUBGOV era , InjectRuleEvent "SUBGOV" DijkstraSubGovEvent era , InjectRuleEvent "SUBGOV" ConwayGovEvent era , InjectRuleFailure "SUBGOV" DijkstraSubGovPredFailure era , InjectRuleFailure "SUBGOV" ConwayGovPredFailure era ) => STS (DijkstraSUBGOV era) where type State (DijkstraSUBGOV era) = Proposals era type Signal (DijkstraSUBGOV era) = GovSignal era type Environment (DijkstraSUBGOV era) = GovEnv era type BaseM (DijkstraSUBGOV era) = ShelleyBase type PredicateFailure (DijkstraSUBGOV era) = DijkstraSubGovPredFailure era type Event (DijkstraSUBGOV era) = DijkstraSubGovEvent era transitionRules :: [TransitionRule (DijkstraSUBGOV era)] transitionRules = [TransitionRule (EraRule "SUBGOV" era) TransitionRule (DijkstraSUBGOV era) forall (rule :: Symbol) era. (ConwayEraCertState era, ConwayEraTxCert era, ConwayEraPParams era, ConwayEraGov era, STS (EraRule rule era), Signal (EraRule rule era) ~ GovSignal era, BaseM (EraRule rule era) ~ ShelleyBase, Environment (EraRule rule era) ~ GovEnv era, State (EraRule rule era) ~ Proposals era, InjectRuleFailure rule ConwayGovPredFailure era, InjectRuleEvent rule ConwayGovEvent era) => TransitionRule (EraRule rule era) conwayGovTransition]