{-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} module Test.Cardano.Ledger.Alonzo.Imp.UtxowSpec (spec) where import Cardano.Ledger.Alonzo.Core (InjectRuleFailure) import Cardano.Ledger.Alonzo.Rules ( AlonzoUtxosPredFailure, AlonzoUtxowPredFailure, ) import Cardano.Ledger.Shelley.Rules (ShelleyUtxowPredFailure) import qualified Test.Cardano.Ledger.Alonzo.Imp.UtxowSpec.Invalid as Invalid import qualified Test.Cardano.Ledger.Alonzo.Imp.UtxowSpec.Valid as Valid import Test.Cardano.Ledger.Alonzo.ImpTest import Test.Cardano.Ledger.Common spec :: forall era. ( AlonzoEraImp era , InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era , InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era , InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era ) => SpecWith (ImpInit (LedgerSpec era)) spec :: forall era. (AlonzoEraImp era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) spec = do forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "UTXOW" forall a b. (a -> b) -> a -> b $ do forall era. (AlonzoEraImp era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) Valid.spec forall era. (AlonzoEraImp era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) Invalid.spec