{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE EmptyDataDeriving #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GeneralisedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.Rules.SubDeleg ( DijkstraSUBDELEG, DijkstraSubDelegPredFailure (..), ) where import Cardano.Ledger.BaseTypes ( ShelleyBase, ) import Cardano.Ledger.Binary ( DecCBOR (..), EncCBOR (..), ) import Cardano.Ledger.Conway.Core import Cardano.Ledger.Conway.Rules (ConwayDelegEnv, ConwayDelegPredFailure) import Cardano.Ledger.Dijkstra.Era ( DijkstraEra, DijkstraSUBDELEG, ) import Cardano.Ledger.Dijkstra.State import Cardano.Ledger.Dijkstra.TxCert (DijkstraDelegCert) import Control.DeepSeq (NFData) import Control.State.Transition.Extended ( BaseM, Environment, Event, PredicateFailure, STS, Signal, State, TRC (TRC), TransitionRule, judgmentContext, transitionRules, ) import Data.Void (Void) import GHC.Generics (Generic) import NoThunks.Class (NoThunks (..)) newtype DijkstraSubDelegPredFailure era = DijkstraSubDelegPredFailure (ConwayDelegPredFailure era) deriving ((forall x. DijkstraSubDelegPredFailure era -> Rep (DijkstraSubDelegPredFailure era) x) -> (forall x. Rep (DijkstraSubDelegPredFailure era) x -> DijkstraSubDelegPredFailure era) -> Generic (DijkstraSubDelegPredFailure era) forall x. Rep (DijkstraSubDelegPredFailure era) x -> DijkstraSubDelegPredFailure era forall x. DijkstraSubDelegPredFailure era -> Rep (DijkstraSubDelegPredFailure era) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall era x. Rep (DijkstraSubDelegPredFailure era) x -> DijkstraSubDelegPredFailure era forall era x. DijkstraSubDelegPredFailure era -> Rep (DijkstraSubDelegPredFailure era) x $cfrom :: forall era x. DijkstraSubDelegPredFailure era -> Rep (DijkstraSubDelegPredFailure era) x from :: forall x. DijkstraSubDelegPredFailure era -> Rep (DijkstraSubDelegPredFailure era) x $cto :: forall era x. Rep (DijkstraSubDelegPredFailure era) x -> DijkstraSubDelegPredFailure era to :: forall x. Rep (DijkstraSubDelegPredFailure era) x -> DijkstraSubDelegPredFailure era Generic, DijkstraSubDelegPredFailure era -> DijkstraSubDelegPredFailure era -> Bool (DijkstraSubDelegPredFailure era -> DijkstraSubDelegPredFailure era -> Bool) -> (DijkstraSubDelegPredFailure era -> DijkstraSubDelegPredFailure era -> Bool) -> Eq (DijkstraSubDelegPredFailure era) forall era. DijkstraSubDelegPredFailure era -> DijkstraSubDelegPredFailure era -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall era. DijkstraSubDelegPredFailure era -> DijkstraSubDelegPredFailure era -> Bool == :: DijkstraSubDelegPredFailure era -> DijkstraSubDelegPredFailure era -> Bool $c/= :: forall era. DijkstraSubDelegPredFailure era -> DijkstraSubDelegPredFailure era -> Bool /= :: DijkstraSubDelegPredFailure era -> DijkstraSubDelegPredFailure era -> Bool Eq, Int -> DijkstraSubDelegPredFailure era -> ShowS [DijkstraSubDelegPredFailure era] -> ShowS DijkstraSubDelegPredFailure era -> String (Int -> DijkstraSubDelegPredFailure era -> ShowS) -> (DijkstraSubDelegPredFailure era -> String) -> ([DijkstraSubDelegPredFailure era] -> ShowS) -> Show (DijkstraSubDelegPredFailure era) forall era. Int -> DijkstraSubDelegPredFailure era -> ShowS forall era. [DijkstraSubDelegPredFailure era] -> ShowS forall era. DijkstraSubDelegPredFailure era -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall era. Int -> DijkstraSubDelegPredFailure era -> ShowS showsPrec :: Int -> DijkstraSubDelegPredFailure era -> ShowS $cshow :: forall era. DijkstraSubDelegPredFailure era -> String show :: DijkstraSubDelegPredFailure era -> String $cshowList :: forall era. [DijkstraSubDelegPredFailure era] -> ShowS showList :: [DijkstraSubDelegPredFailure era] -> ShowS Show, DijkstraSubDelegPredFailure era -> () (DijkstraSubDelegPredFailure era -> ()) -> NFData (DijkstraSubDelegPredFailure era) forall era. DijkstraSubDelegPredFailure era -> () forall a. (a -> ()) -> NFData a $crnf :: forall era. DijkstraSubDelegPredFailure era -> () rnf :: DijkstraSubDelegPredFailure era -> () NFData, Context -> DijkstraSubDelegPredFailure era -> IO (Maybe ThunkInfo) Proxy (DijkstraSubDelegPredFailure era) -> String (Context -> DijkstraSubDelegPredFailure era -> IO (Maybe ThunkInfo)) -> (Context -> DijkstraSubDelegPredFailure era -> IO (Maybe ThunkInfo)) -> (Proxy (DijkstraSubDelegPredFailure era) -> String) -> NoThunks (DijkstraSubDelegPredFailure era) forall era. Context -> DijkstraSubDelegPredFailure era -> IO (Maybe ThunkInfo) forall era. Proxy (DijkstraSubDelegPredFailure era) -> String forall a. (Context -> a -> IO (Maybe ThunkInfo)) -> (Context -> a -> IO (Maybe ThunkInfo)) -> (Proxy a -> String) -> NoThunks a $cnoThunks :: forall era. Context -> DijkstraSubDelegPredFailure era -> IO (Maybe ThunkInfo) noThunks :: Context -> DijkstraSubDelegPredFailure era -> IO (Maybe ThunkInfo) $cwNoThunks :: forall era. Context -> DijkstraSubDelegPredFailure era -> IO (Maybe ThunkInfo) wNoThunks :: Context -> DijkstraSubDelegPredFailure era -> IO (Maybe ThunkInfo) $cshowTypeOf :: forall era. Proxy (DijkstraSubDelegPredFailure era) -> String showTypeOf :: Proxy (DijkstraSubDelegPredFailure era) -> String NoThunks, DijkstraSubDelegPredFailure era -> Encoding (DijkstraSubDelegPredFailure era -> Encoding) -> EncCBOR (DijkstraSubDelegPredFailure era) forall era. Era era => DijkstraSubDelegPredFailure era -> Encoding forall a. (a -> Encoding) -> EncCBOR a $cencCBOR :: forall era. Era era => DijkstraSubDelegPredFailure era -> Encoding encCBOR :: DijkstraSubDelegPredFailure era -> Encoding EncCBOR, Typeable (DijkstraSubDelegPredFailure era) Typeable (DijkstraSubDelegPredFailure era) => (forall s. Decoder s (DijkstraSubDelegPredFailure era)) -> (forall s. Proxy (DijkstraSubDelegPredFailure era) -> Decoder s ()) -> (Proxy (DijkstraSubDelegPredFailure era) -> Text) -> DecCBOR (DijkstraSubDelegPredFailure era) Proxy (DijkstraSubDelegPredFailure era) -> Text forall s. Decoder s (DijkstraSubDelegPredFailure era) forall a. Typeable a => (forall s. Decoder s a) -> (forall s. Proxy a -> Decoder s ()) -> (Proxy a -> Text) -> DecCBOR a forall s. Proxy (DijkstraSubDelegPredFailure era) -> Decoder s () forall era. Era era => Typeable (DijkstraSubDelegPredFailure era) forall era. Era era => Proxy (DijkstraSubDelegPredFailure era) -> Text forall era s. Era era => Decoder s (DijkstraSubDelegPredFailure era) forall era s. Era era => Proxy (DijkstraSubDelegPredFailure era) -> Decoder s () $cdecCBOR :: forall era s. Era era => Decoder s (DijkstraSubDelegPredFailure era) decCBOR :: forall s. Decoder s (DijkstraSubDelegPredFailure era) $cdropCBOR :: forall era s. Era era => Proxy (DijkstraSubDelegPredFailure era) -> Decoder s () dropCBOR :: forall s. Proxy (DijkstraSubDelegPredFailure era) -> Decoder s () $clabel :: forall era. Era era => Proxy (DijkstraSubDelegPredFailure era) -> Text label :: Proxy (DijkstraSubDelegPredFailure era) -> Text DecCBOR) type instance EraRuleFailure "SUBDELEG" DijkstraEra = DijkstraSubDelegPredFailure DijkstraEra type instance EraRuleEvent "SUBDELEG" DijkstraEra = VoidEraRule "SUBDELEG" DijkstraEra instance InjectRuleFailure "SUBDELEG" DijkstraSubDelegPredFailure DijkstraEra instance ( EraGov era , EraCertState era , EraRule "SUBDELEG" era ~ DijkstraSUBDELEG era ) => STS (DijkstraSUBDELEG era) where type State (DijkstraSUBDELEG era) = CertState era type Signal (DijkstraSUBDELEG era) = DijkstraDelegCert type Environment (DijkstraSUBDELEG era) = ConwayDelegEnv era type BaseM (DijkstraSUBDELEG era) = ShelleyBase type PredicateFailure (DijkstraSUBDELEG era) = DijkstraSubDelegPredFailure era type Event (DijkstraSUBDELEG era) = Void transitionRules :: [TransitionRule (DijkstraSUBDELEG era)] transitionRules = [forall era. TransitionRule (EraRule "SUBDELEG" era) dijkstraSubDelegTransition @era] dijkstraSubDelegTransition :: TransitionRule (EraRule "SUBDELEG" era) dijkstraSubDelegTransition :: forall era. TransitionRule (EraRule "SUBDELEG" era) dijkstraSubDelegTransition = do TRC (_, st, _) <- Rule (EraRule "SUBDELEG" era) 'Transition (RuleContext 'Transition (EraRule "SUBDELEG" era)) F (Clause (EraRule "SUBDELEG" era) 'Transition) (TRC (EraRule "SUBDELEG" era)) forall sts (rtype :: RuleType). Rule sts rtype (RuleContext rtype sts) judgmentContext pure st