{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE UndecidableSuperClasses #-} module Cardano.Ledger.Genesis ( EraGenesis (..), NoGenesis (..), ) where 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)