{-# 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 forall era. NoGenesis era -> NoGenesis era -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: NoGenesis era -> NoGenesis era -> Bool $c/= :: forall era. NoGenesis era -> NoGenesis era -> Bool == :: NoGenesis era -> NoGenesis era -> Bool $c== :: forall era. NoGenesis era -> NoGenesis era -> Bool Eq, Int -> NoGenesis era -> ShowS 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 showList :: [NoGenesis era] -> ShowS $cshowList :: forall era. [NoGenesis era] -> ShowS show :: NoGenesis era -> String $cshow :: forall era. NoGenesis era -> String showsPrec :: Int -> NoGenesis era -> ShowS $cshowsPrec :: forall era. Int -> NoGenesis era -> ShowS Show) instance Era era => ToCBOR (NoGenesis era) where toCBOR :: NoGenesis era -> Encoding toCBOR NoGenesis era _ = forall a. ToCBOR a => a -> Encoding toCBOR () instance Era era => FromCBOR (NoGenesis era) where fromCBOR :: forall s. Decoder s (NoGenesis era) fromCBOR = forall era. NoGenesis era NoGenesis 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)