{-# 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 (..), GovEnv, GovSignal) import Cardano.Ledger.Dijkstra.Era ( DijkstraEra, DijkstraSUBGOV, ) import Cardano.Ledger.Dijkstra.Rules.Gov (DijkstraGovPredFailure) import Control.DeepSeq (NFData) import Control.State.Transition.Extended ( BaseM, Environment, Event, PredicateFailure, STS, Signal, State, TRC (TRC), TransitionRule, judgmentContext, transitionRules, ) 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" 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 ( EraGov era , EraRule "SUBGOV" era ~ DijkstraSUBGOV 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 = [forall era. TransitionRule (EraRule "SUBGOV" era) dijkstraSubGovTransition @era] dijkstraSubGovTransition :: TransitionRule (EraRule "SUBGOV" era) dijkstraSubGovTransition :: forall era. TransitionRule (EraRule "SUBGOV" era) dijkstraSubGovTransition = do TRC (_, st, _) <- Rule (EraRule "SUBGOV" era) 'Transition (RuleContext 'Transition (EraRule "SUBGOV" era)) F (Clause (EraRule "SUBGOV" era) 'Transition) (TRC (EraRule "SUBGOV" era)) forall sts (rtype :: RuleType). Rule sts rtype (RuleContext rtype sts) judgmentContext pure st