{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE EmptyDataDeriving #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.Rules.SubPool ( DijkstraSUBPOOL, DijkstraSubPoolPredFailure (..), ) where import Cardano.Ledger.BaseTypes ( ShelleyBase, ) import Cardano.Ledger.Binary ( DecCBOR (..), EncCBOR (..), ) import Cardano.Ledger.Conway.Core import Cardano.Ledger.Dijkstra.Era ( DijkstraEra, DijkstraSUBPOOL, ) import Cardano.Ledger.Dijkstra.State import Cardano.Ledger.Shelley.Rules (PoolEnv) import Control.DeepSeq (NFData) import Control.State.Transition.Extended ( BaseM, Environment, Event, PredicateFailure, STS, Signal, State, TRC (TRC), TransitionRule, judgmentContext, transitionRules, ) import Data.Typeable (Typeable) import Data.Void (Void) import GHC.Generics (Generic) import NoThunks.Class (NoThunks (..)) data DijkstraSubPoolPredFailure era = DijkstraSubPoolPredFailure deriving (Int -> DijkstraSubPoolPredFailure era -> ShowS [DijkstraSubPoolPredFailure era] -> ShowS DijkstraSubPoolPredFailure era -> String (Int -> DijkstraSubPoolPredFailure era -> ShowS) -> (DijkstraSubPoolPredFailure era -> String) -> ([DijkstraSubPoolPredFailure era] -> ShowS) -> Show (DijkstraSubPoolPredFailure era) forall era. Int -> DijkstraSubPoolPredFailure era -> ShowS forall era. [DijkstraSubPoolPredFailure era] -> ShowS forall era. DijkstraSubPoolPredFailure era -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall era. Int -> DijkstraSubPoolPredFailure era -> ShowS showsPrec :: Int -> DijkstraSubPoolPredFailure era -> ShowS $cshow :: forall era. DijkstraSubPoolPredFailure era -> String show :: DijkstraSubPoolPredFailure era -> String $cshowList :: forall era. [DijkstraSubPoolPredFailure era] -> ShowS showList :: [DijkstraSubPoolPredFailure era] -> ShowS Show, DijkstraSubPoolPredFailure era -> DijkstraSubPoolPredFailure era -> Bool (DijkstraSubPoolPredFailure era -> DijkstraSubPoolPredFailure era -> Bool) -> (DijkstraSubPoolPredFailure era -> DijkstraSubPoolPredFailure era -> Bool) -> Eq (DijkstraSubPoolPredFailure era) forall era. DijkstraSubPoolPredFailure era -> DijkstraSubPoolPredFailure era -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall era. DijkstraSubPoolPredFailure era -> DijkstraSubPoolPredFailure era -> Bool == :: DijkstraSubPoolPredFailure era -> DijkstraSubPoolPredFailure era -> Bool $c/= :: forall era. DijkstraSubPoolPredFailure era -> DijkstraSubPoolPredFailure era -> Bool /= :: DijkstraSubPoolPredFailure era -> DijkstraSubPoolPredFailure era -> Bool Eq, (forall x. DijkstraSubPoolPredFailure era -> Rep (DijkstraSubPoolPredFailure era) x) -> (forall x. Rep (DijkstraSubPoolPredFailure era) x -> DijkstraSubPoolPredFailure era) -> Generic (DijkstraSubPoolPredFailure era) forall x. Rep (DijkstraSubPoolPredFailure era) x -> DijkstraSubPoolPredFailure era forall x. DijkstraSubPoolPredFailure era -> Rep (DijkstraSubPoolPredFailure era) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall era x. Rep (DijkstraSubPoolPredFailure era) x -> DijkstraSubPoolPredFailure era forall era x. DijkstraSubPoolPredFailure era -> Rep (DijkstraSubPoolPredFailure era) x $cfrom :: forall era x. DijkstraSubPoolPredFailure era -> Rep (DijkstraSubPoolPredFailure era) x from :: forall x. DijkstraSubPoolPredFailure era -> Rep (DijkstraSubPoolPredFailure era) x $cto :: forall era x. Rep (DijkstraSubPoolPredFailure era) x -> DijkstraSubPoolPredFailure era to :: forall x. Rep (DijkstraSubPoolPredFailure era) x -> DijkstraSubPoolPredFailure era Generic) instance NoThunks (DijkstraSubPoolPredFailure era) instance NFData (DijkstraSubPoolPredFailure era) instance Era era => EncCBOR (DijkstraSubPoolPredFailure era) where encCBOR :: DijkstraSubPoolPredFailure era -> Encoding encCBOR DijkstraSubPoolPredFailure era _ = () -> Encoding forall a. EncCBOR a => a -> Encoding encCBOR () instance Typeable era => DecCBOR (DijkstraSubPoolPredFailure era) where decCBOR :: forall s. Decoder s (DijkstraSubPoolPredFailure era) decCBOR = forall a s. DecCBOR a => Decoder s a decCBOR @() Decoder s () -> Decoder s (DijkstraSubPoolPredFailure era) -> Decoder s (DijkstraSubPoolPredFailure era) forall a b. Decoder s a -> Decoder s b -> Decoder s b forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b *> DijkstraSubPoolPredFailure era -> Decoder s (DijkstraSubPoolPredFailure era) forall a. a -> Decoder s a forall (f :: * -> *) a. Applicative f => a -> f a pure DijkstraSubPoolPredFailure era forall era. DijkstraSubPoolPredFailure era DijkstraSubPoolPredFailure type instance EraRuleFailure "SUBPOOL" DijkstraEra = DijkstraSubPoolPredFailure DijkstraEra type instance EraRuleEvent "SUBPOOL" DijkstraEra = VoidEraRule "SUBPOOL" DijkstraEra instance InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure DijkstraEra instance ( EraGov era , EraRule "SUBPOOL" era ~ DijkstraSUBPOOL era ) => STS (DijkstraSUBPOOL era) where type State (DijkstraSUBPOOL era) = PState era type Signal (DijkstraSUBPOOL era) = PoolCert type Environment (DijkstraSUBPOOL era) = PoolEnv era type BaseM (DijkstraSUBPOOL era) = ShelleyBase type PredicateFailure (DijkstraSUBPOOL era) = DijkstraSubPoolPredFailure era type Event (DijkstraSUBPOOL era) = Void transitionRules :: [TransitionRule (DijkstraSUBPOOL era)] transitionRules = [forall era. TransitionRule (EraRule "SUBPOOL" era) dijkstraSubPoolTransition @era] dijkstraSubPoolTransition :: TransitionRule (EraRule "SUBPOOL" era) dijkstraSubPoolTransition :: forall era. TransitionRule (EraRule "SUBPOOL" era) dijkstraSubPoolTransition = do TRC (_, st, _) <- Rule (EraRule "SUBPOOL" era) 'Transition (RuleContext 'Transition (EraRule "SUBPOOL" era)) F (Clause (EraRule "SUBPOOL" era) 'Transition) (TRC (EraRule "SUBPOOL" era)) forall sts (rtype :: RuleType). Rule sts rtype (RuleContext rtype sts) judgmentContext pure st