{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE UndecidableSuperClasses #-} module Cardano.Ledger.Genesis ( EraGenesis (..), NoGenesis (..), ) where import Cardano.Ledger.Binary ( DecCBOR (..), EncCBOR (..), FromCBOR (..), ToCBOR (..), ) import Cardano.Ledger.Core.Era (Era) import Data.Kind (Type) class Era era => EraGenesis era where type Genesis era :: Type type Genesis era = NoGenesis era data NoGenesis era = NoGenesis deriving (NoGenesis era -> NoGenesis era -> Bool (NoGenesis era -> NoGenesis era -> Bool) -> (NoGenesis era -> NoGenesis era -> Bool) -> Eq (NoGenesis era) forall era. NoGenesis era -> NoGenesis era -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall era. NoGenesis era -> NoGenesis era -> Bool == :: NoGenesis era -> NoGenesis era -> Bool $c/= :: forall era. NoGenesis era -> NoGenesis era -> Bool /= :: NoGenesis era -> NoGenesis era -> Bool Eq, Int -> NoGenesis era -> ShowS [NoGenesis era] -> ShowS NoGenesis era -> String (Int -> NoGenesis era -> ShowS) -> (NoGenesis era -> String) -> ([NoGenesis era] -> ShowS) -> Show (NoGenesis era) forall era. Int -> NoGenesis era -> ShowS forall era. [NoGenesis era] -> ShowS forall era. NoGenesis era -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall era. Int -> NoGenesis era -> ShowS showsPrec :: Int -> NoGenesis era -> ShowS $cshow :: forall era. NoGenesis era -> String show :: NoGenesis era -> String $cshowList :: forall era. [NoGenesis era] -> ShowS showList :: [NoGenesis era] -> ShowS Show) instance Era era => ToCBOR (NoGenesis era) where toCBOR :: NoGenesis era -> Encoding toCBOR NoGenesis era _ = () -> Encoding forall a. ToCBOR a => a -> Encoding toCBOR () instance Era era => FromCBOR (NoGenesis era) where fromCBOR :: forall s. Decoder s (NoGenesis era) fromCBOR = NoGenesis era forall era. NoGenesis era NoGenesis NoGenesis era -> Decoder s () -> Decoder s (NoGenesis era) forall a b. a -> Decoder s b -> Decoder s a forall (f :: * -> *) a b. Functor f => a -> f b -> f a <$ forall a s. FromCBOR a => Decoder s a fromCBOR @() instance Era era => EncCBOR (NoGenesis era) instance Era era => DecCBOR (NoGenesis era)