{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Dijkstra.Imp where import Cardano.Ledger.Conway.Rules import Cardano.Ledger.Dijkstra (DijkstraEra) import Cardano.Ledger.Dijkstra.Core import Cardano.Ledger.Shelley.Rules import Test.Cardano.Ledger.Common import qualified Test.Cardano.Ledger.Conway.Imp as ConwayImp import qualified Test.Cardano.Ledger.Dijkstra.Imp.UtxowSpec as Utxow import Test.Cardano.Ledger.Dijkstra.ImpTest spec :: forall era. ( DijkstraEraImp era , EraSpecificSpec era , Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era , Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era , Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era ) => Spec spec :: forall era. (DijkstraEraImp era, EraSpecificSpec era, Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era, Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era) => Spec spec = do forall era. (ConwayEraImp era, EraSpecificSpec era, Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era, Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era) => Spec ConwayImp.spec @era forall era. ShelleyEraImp era => SpecWith (ImpInit (LedgerSpec era)) -> Spec withEachEraVersion @era (SpecWith (ImpInit (LedgerSpec era)) -> Spec) -> SpecWith (ImpInit (LedgerSpec era)) -> Spec forall a b. (a -> b) -> a -> b $ forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) dijkstraEraGenericSpec @era dijkstraEraGenericSpec :: forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) dijkstraEraGenericSpec :: forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) dijkstraEraGenericSpec = do String -> SpecWith (ImpInit (LedgerSpec era)) -> SpecWith (ImpInit (LedgerSpec era)) forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "UTXOW" SpecWith (ImpInit (LedgerSpec era)) forall era. DijkstraEraImp era => SpecWith (ImpInit (LedgerSpec era)) Utxow.spec instance EraSpecificSpec DijkstraEra