{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Cardano.Api.Internal.Orphans.Misc
  (
  )
where

import Cardano.Api.Internal.Pretty (Pretty (..), prettyException, (<+>))

import Cardano.Ledger.Alonzo.PParams qualified as Ledger
import Cardano.Ledger.Babbage.PParams qualified as Ledger
import Cardano.Ledger.BaseTypes (strictMaybeToMaybe)
import Cardano.Ledger.BaseTypes qualified as Ledger
import Cardano.Ledger.Binary
import Cardano.Ledger.Coin qualified as L
import Cardano.Ledger.Conway.PParams qualified as Ledger
import Cardano.Ledger.HKD (NoUpdate (..))
import Cardano.Ledger.Shelley.PParams qualified as Ledger

import Codec.Binary.Bech32 qualified as Bech32
import Codec.CBOR.Read qualified as CBOR
import Data.Data (Data)
import Data.ListMap (ListMap)
import Data.ListMap qualified as ListMap
import Data.Maybe.Strict (StrictMaybe (..))
import Data.Monoid
import GHC.Exts (IsList (..))
import Network.Mux qualified as Mux

deriving instance Data DecoderError

deriving instance Data CBOR.DeserialiseFailure

deriving instance Data Bech32.DecodingError

deriving instance Data Bech32.CharPosition

-- | These instances originally existed on the Lovelace type.
-- As the Lovelace type is deleted and we use L.Coin instead,
-- these instances are added to L.Coin.  The instances are
-- purely for the convenience of writing expressions involving
-- L.Coin but be aware that not all uses of these typeclasses
-- are valid.
deriving newtype instance Real L.Coin

deriving newtype instance Integral L.Coin

deriving newtype instance Num L.Coin

-- We wrap the individual records with Last and use Last's Semigroup instance.
-- In this instance we take the last 'Just' value or the only 'Just' value
instance Semigroup (Ledger.ShelleyPParams StrictMaybe era) where
  <> :: ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era -> ShelleyPParams StrictMaybe era
(<>) ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2 =
    let fsppMinFeeA :: StrictMaybe Coin
fsppMinFeeA = (ShelleyPParams StrictMaybe era -> StrictMaybe Coin)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Coin
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
Ledger.sppMinFeeA ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppMinFeeB :: StrictMaybe Coin
fsppMinFeeB = (ShelleyPParams StrictMaybe era -> StrictMaybe Coin)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Coin
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
Ledger.sppMinFeeB ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppMaxBBSize :: StrictMaybe Word32
fsppMaxBBSize = (ShelleyPParams StrictMaybe era -> StrictMaybe Word32)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Word32
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Word32
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Word32
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word32
Ledger.sppMaxBBSize ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppMaxTxSize :: StrictMaybe Word32
fsppMaxTxSize = (ShelleyPParams StrictMaybe era -> StrictMaybe Word32)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Word32
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Word32
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Word32
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word32
Ledger.sppMaxTxSize ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppMaxBHSize :: StrictMaybe Word16
fsppMaxBHSize = (ShelleyPParams StrictMaybe era -> StrictMaybe Word16)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Word16
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Word16
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Word16
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word16
Ledger.sppMaxBHSize ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppKeyDeposit :: StrictMaybe Coin
fsppKeyDeposit = (ShelleyPParams StrictMaybe era -> StrictMaybe Coin)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Coin
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
Ledger.sppKeyDeposit ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppPoolDeposit :: StrictMaybe Coin
fsppPoolDeposit = (ShelleyPParams StrictMaybe era -> StrictMaybe Coin)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Coin
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
Ledger.sppPoolDeposit ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppEMax :: StrictMaybe EpochInterval
fsppEMax = (ShelleyPParams StrictMaybe era -> StrictMaybe EpochInterval)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe EpochInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe EpochInterval
ShelleyPParams StrictMaybe era -> HKD StrictMaybe EpochInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f EpochInterval
Ledger.sppEMax ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppNOpt :: StrictMaybe Word16
fsppNOpt = (ShelleyPParams StrictMaybe era -> StrictMaybe Word16)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Word16
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Word16
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Word16
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word16
Ledger.sppNOpt ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppA0 :: StrictMaybe NonNegativeInterval
fsppA0 = (ShelleyPParams StrictMaybe era -> StrictMaybe NonNegativeInterval)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe NonNegativeInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe NonNegativeInterval
ShelleyPParams StrictMaybe era
-> HKD StrictMaybe NonNegativeInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f NonNegativeInterval
Ledger.sppA0 ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppRho :: StrictMaybe UnitInterval
fsppRho = (ShelleyPParams StrictMaybe era -> StrictMaybe UnitInterval)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe UnitInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe UnitInterval
ShelleyPParams StrictMaybe era -> HKD StrictMaybe UnitInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
Ledger.sppRho ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppTau :: StrictMaybe UnitInterval
fsppTau = (ShelleyPParams StrictMaybe era -> StrictMaybe UnitInterval)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe UnitInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe UnitInterval
ShelleyPParams StrictMaybe era -> HKD StrictMaybe UnitInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
Ledger.sppTau ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppD :: StrictMaybe UnitInterval
fsppD = (ShelleyPParams StrictMaybe era -> StrictMaybe UnitInterval)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe UnitInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe UnitInterval
ShelleyPParams StrictMaybe era -> HKD StrictMaybe UnitInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
Ledger.sppD ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppExtraEntropy :: StrictMaybe Nonce
fsppExtraEntropy = (ShelleyPParams StrictMaybe era -> StrictMaybe Nonce)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Nonce
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Nonce
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Nonce
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Nonce
Ledger.sppExtraEntropy ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppProtocolVersion :: StrictMaybe ProtVer
fsppProtocolVersion = (ShelleyPParams StrictMaybe era -> StrictMaybe ProtVer)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe ProtVer
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe ProtVer
ShelleyPParams StrictMaybe era -> HKD StrictMaybe ProtVer
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f ProtVer
Ledger.sppProtocolVersion ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppMinUTxOValue :: StrictMaybe Coin
fsppMinUTxOValue = (ShelleyPParams StrictMaybe era -> StrictMaybe Coin)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Coin
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
Ledger.sppMinUTxOValue ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
        fsppMinPoolCost :: StrictMaybe Coin
fsppMinPoolCost = (ShelleyPParams StrictMaybe era -> StrictMaybe Coin)
-> ShelleyPParams StrictMaybe era
-> ShelleyPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith ShelleyPParams StrictMaybe era -> StrictMaybe Coin
ShelleyPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
Ledger.sppMinPoolCost ShelleyPParams StrictMaybe era
pp1 ShelleyPParams StrictMaybe era
pp2
     in Ledger.ShelleyPParams
          { sppMinFeeA :: HKD StrictMaybe Coin
Ledger.sppMinFeeA = StrictMaybe Coin
HKD StrictMaybe Coin
fsppMinFeeA
          , sppMinFeeB :: HKD StrictMaybe Coin
Ledger.sppMinFeeB = StrictMaybe Coin
HKD StrictMaybe Coin
fsppMinFeeB
          , sppMaxBBSize :: HKD StrictMaybe Word32
Ledger.sppMaxBBSize = StrictMaybe Word32
HKD StrictMaybe Word32
fsppMaxBBSize
          , sppMaxTxSize :: HKD StrictMaybe Word32
Ledger.sppMaxTxSize = StrictMaybe Word32
HKD StrictMaybe Word32
fsppMaxTxSize
          , sppMaxBHSize :: HKD StrictMaybe Word16
Ledger.sppMaxBHSize = StrictMaybe Word16
HKD StrictMaybe Word16
fsppMaxBHSize
          , sppKeyDeposit :: HKD StrictMaybe Coin
Ledger.sppKeyDeposit = StrictMaybe Coin
HKD StrictMaybe Coin
fsppKeyDeposit
          , sppPoolDeposit :: HKD StrictMaybe Coin
Ledger.sppPoolDeposit = StrictMaybe Coin
HKD StrictMaybe Coin
fsppPoolDeposit
          , sppEMax :: HKD StrictMaybe EpochInterval
Ledger.sppEMax = StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
fsppEMax
          , sppNOpt :: HKD StrictMaybe Word16
Ledger.sppNOpt = StrictMaybe Word16
HKD StrictMaybe Word16
fsppNOpt
          , sppA0 :: HKD StrictMaybe NonNegativeInterval
Ledger.sppA0 = StrictMaybe NonNegativeInterval
HKD StrictMaybe NonNegativeInterval
fsppA0
          , sppRho :: HKD StrictMaybe UnitInterval
Ledger.sppRho = StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
fsppRho
          , sppTau :: HKD StrictMaybe UnitInterval
Ledger.sppTau = StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
fsppTau
          , sppD :: HKD StrictMaybe UnitInterval
Ledger.sppD = StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
fsppD
          , sppExtraEntropy :: HKD StrictMaybe Nonce
Ledger.sppExtraEntropy = StrictMaybe Nonce
HKD StrictMaybe Nonce
fsppExtraEntropy
          , sppProtocolVersion :: HKD StrictMaybe ProtVer
Ledger.sppProtocolVersion = StrictMaybe ProtVer
HKD StrictMaybe ProtVer
fsppProtocolVersion
          , sppMinUTxOValue :: HKD StrictMaybe Coin
Ledger.sppMinUTxOValue = StrictMaybe Coin
HKD StrictMaybe Coin
fsppMinUTxOValue
          , sppMinPoolCost :: HKD StrictMaybe Coin
Ledger.sppMinPoolCost = StrictMaybe Coin
HKD StrictMaybe Coin
fsppMinPoolCost
          }

instance Semigroup (Ledger.AlonzoPParams StrictMaybe era) where
  <> :: AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era -> AlonzoPParams StrictMaybe era
(<>) AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2 =
    let fappMinFeeA :: StrictMaybe Coin
fappMinFeeA = (AlonzoPParams StrictMaybe era -> StrictMaybe Coin)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Coin
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
Ledger.appMinFeeA AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappMinFeeB :: StrictMaybe Coin
fappMinFeeB = (AlonzoPParams StrictMaybe era -> StrictMaybe Coin)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Coin
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
Ledger.appMinFeeB AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappMaxBBSize :: StrictMaybe Word32
fappMaxBBSize = (AlonzoPParams StrictMaybe era -> StrictMaybe Word32)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Word32
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Word32
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Word32
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
Ledger.appMaxBBSize AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappMaxTxSize :: StrictMaybe Word32
fappMaxTxSize = (AlonzoPParams StrictMaybe era -> StrictMaybe Word32)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Word32
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Word32
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Word32
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
Ledger.appMaxTxSize AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappMaxBHSize :: StrictMaybe Word16
fappMaxBHSize = (AlonzoPParams StrictMaybe era -> StrictMaybe Word16)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Word16
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Word16
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Word16
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
Ledger.appMaxBHSize AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappKeyDeposit :: StrictMaybe Coin
fappKeyDeposit = (AlonzoPParams StrictMaybe era -> StrictMaybe Coin)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Coin
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
Ledger.appKeyDeposit AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappPoolDeposit :: StrictMaybe Coin
fappPoolDeposit = (AlonzoPParams StrictMaybe era -> StrictMaybe Coin)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Coin
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
Ledger.appPoolDeposit AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappEMax :: StrictMaybe EpochInterval
fappEMax = (AlonzoPParams StrictMaybe era -> StrictMaybe EpochInterval)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe EpochInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe EpochInterval
AlonzoPParams StrictMaybe era -> HKD StrictMaybe EpochInterval
forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f EpochInterval
Ledger.appEMax AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappNOpt :: StrictMaybe Word16
fappNOpt = (AlonzoPParams StrictMaybe era -> StrictMaybe Word16)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Word16
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Word16
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Word16
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
Ledger.appNOpt AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappA0 :: StrictMaybe NonNegativeInterval
fappA0 = (AlonzoPParams StrictMaybe era -> StrictMaybe NonNegativeInterval)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe NonNegativeInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe NonNegativeInterval
AlonzoPParams StrictMaybe era
-> HKD StrictMaybe NonNegativeInterval
forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f NonNegativeInterval
Ledger.appA0 AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappRho :: StrictMaybe UnitInterval
fappRho = (AlonzoPParams StrictMaybe era -> StrictMaybe UnitInterval)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe UnitInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe UnitInterval
AlonzoPParams StrictMaybe era -> HKD StrictMaybe UnitInterval
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
Ledger.appRho AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappTau :: StrictMaybe UnitInterval
fappTau = (AlonzoPParams StrictMaybe era -> StrictMaybe UnitInterval)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe UnitInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe UnitInterval
AlonzoPParams StrictMaybe era -> HKD StrictMaybe UnitInterval
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
Ledger.appTau AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappD :: StrictMaybe UnitInterval
fappD = (AlonzoPParams StrictMaybe era -> StrictMaybe UnitInterval)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe UnitInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe UnitInterval
AlonzoPParams StrictMaybe era -> HKD StrictMaybe UnitInterval
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
Ledger.appD AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappExtraEntropy :: StrictMaybe Nonce
fappExtraEntropy = (AlonzoPParams StrictMaybe era -> StrictMaybe Nonce)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Nonce
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Nonce
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Nonce
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Nonce
Ledger.appExtraEntropy AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappProtocolVersion :: StrictMaybe ProtVer
fappProtocolVersion = (AlonzoPParams StrictMaybe era -> StrictMaybe ProtVer)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe ProtVer
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe ProtVer
AlonzoPParams StrictMaybe era -> HKD StrictMaybe ProtVer
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f ProtVer
Ledger.appProtocolVersion AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappMinPoolCost :: StrictMaybe Coin
fappMinPoolCost = (AlonzoPParams StrictMaybe era -> StrictMaybe Coin)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Coin
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
Ledger.appMinPoolCost AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappCoinsPerUTxOWord :: StrictMaybe CoinPerWord
fappCoinsPerUTxOWord = (AlonzoPParams StrictMaybe era -> StrictMaybe CoinPerWord)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe CoinPerWord
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe CoinPerWord
AlonzoPParams StrictMaybe era -> HKD StrictMaybe CoinPerWord
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CoinPerWord
Ledger.appCoinsPerUTxOWord AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappCostModels :: StrictMaybe CostModels
fappCostModels = (AlonzoPParams StrictMaybe era -> StrictMaybe CostModels)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe CostModels
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe CostModels
AlonzoPParams StrictMaybe era -> HKD StrictMaybe CostModels
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CostModels
Ledger.appCostModels AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappPrices :: StrictMaybe Prices
fappPrices = (AlonzoPParams StrictMaybe era -> StrictMaybe Prices)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Prices
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Prices
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Prices
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Prices
Ledger.appPrices AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappMaxTxExUnits :: StrictMaybe OrdExUnits
fappMaxTxExUnits = (AlonzoPParams StrictMaybe era -> StrictMaybe OrdExUnits)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe OrdExUnits
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe OrdExUnits
AlonzoPParams StrictMaybe era -> HKD StrictMaybe OrdExUnits
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
Ledger.appMaxTxExUnits AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappMaxBlockExUnits :: StrictMaybe OrdExUnits
fappMaxBlockExUnits = (AlonzoPParams StrictMaybe era -> StrictMaybe OrdExUnits)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe OrdExUnits
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe OrdExUnits
AlonzoPParams StrictMaybe era -> HKD StrictMaybe OrdExUnits
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
Ledger.appMaxBlockExUnits AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappMaxValSize :: StrictMaybe Natural
fappMaxValSize = (AlonzoPParams StrictMaybe era -> StrictMaybe Natural)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Natural
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Natural
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Natural
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
Ledger.appMaxValSize AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappCollateralPercentage :: StrictMaybe Natural
fappCollateralPercentage = (AlonzoPParams StrictMaybe era -> StrictMaybe Natural)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Natural
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Natural
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Natural
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
Ledger.appCollateralPercentage AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
        fappMaxCollateralInputs :: StrictMaybe Natural
fappMaxCollateralInputs = (AlonzoPParams StrictMaybe era -> StrictMaybe Natural)
-> AlonzoPParams StrictMaybe era
-> AlonzoPParams StrictMaybe era
-> StrictMaybe Natural
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith AlonzoPParams StrictMaybe era -> StrictMaybe Natural
AlonzoPParams StrictMaybe era -> HKD StrictMaybe Natural
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
Ledger.appMaxCollateralInputs AlonzoPParams StrictMaybe era
p1 AlonzoPParams StrictMaybe era
p2
     in Ledger.AlonzoPParams
          { appMinFeeA :: HKD StrictMaybe Coin
Ledger.appMinFeeA = StrictMaybe Coin
HKD StrictMaybe Coin
fappMinFeeA
          , appMinFeeB :: HKD StrictMaybe Coin
Ledger.appMinFeeB = StrictMaybe Coin
HKD StrictMaybe Coin
fappMinFeeB
          , appMaxBBSize :: HKD StrictMaybe Word32
Ledger.appMaxBBSize = StrictMaybe Word32
HKD StrictMaybe Word32
fappMaxBBSize
          , appMaxTxSize :: HKD StrictMaybe Word32
Ledger.appMaxTxSize = StrictMaybe Word32
HKD StrictMaybe Word32
fappMaxTxSize
          , appMaxBHSize :: HKD StrictMaybe Word16
Ledger.appMaxBHSize = StrictMaybe Word16
HKD StrictMaybe Word16
fappMaxBHSize
          , appKeyDeposit :: HKD StrictMaybe Coin
Ledger.appKeyDeposit = StrictMaybe Coin
HKD StrictMaybe Coin
fappKeyDeposit
          , appPoolDeposit :: HKD StrictMaybe Coin
Ledger.appPoolDeposit = StrictMaybe Coin
HKD StrictMaybe Coin
fappPoolDeposit
          , appEMax :: HKD StrictMaybe EpochInterval
Ledger.appEMax = StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
fappEMax
          , appNOpt :: HKD StrictMaybe Word16
Ledger.appNOpt = StrictMaybe Word16
HKD StrictMaybe Word16
fappNOpt
          , appA0 :: HKD StrictMaybe NonNegativeInterval
Ledger.appA0 = StrictMaybe NonNegativeInterval
HKD StrictMaybe NonNegativeInterval
fappA0
          , appRho :: HKD StrictMaybe UnitInterval
Ledger.appRho = StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
fappRho
          , appTau :: HKD StrictMaybe UnitInterval
Ledger.appTau = StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
fappTau
          , appD :: HKD StrictMaybe UnitInterval
Ledger.appD = StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
fappD
          , appExtraEntropy :: HKD StrictMaybe Nonce
Ledger.appExtraEntropy = StrictMaybe Nonce
HKD StrictMaybe Nonce
fappExtraEntropy
          , appProtocolVersion :: HKD StrictMaybe ProtVer
Ledger.appProtocolVersion = StrictMaybe ProtVer
HKD StrictMaybe ProtVer
fappProtocolVersion
          , appMinPoolCost :: HKD StrictMaybe Coin
Ledger.appMinPoolCost = StrictMaybe Coin
HKD StrictMaybe Coin
fappMinPoolCost
          , appCoinsPerUTxOWord :: HKD StrictMaybe CoinPerWord
Ledger.appCoinsPerUTxOWord = StrictMaybe CoinPerWord
HKD StrictMaybe CoinPerWord
fappCoinsPerUTxOWord
          , appCostModels :: HKD StrictMaybe CostModels
Ledger.appCostModels = StrictMaybe CostModels
HKD StrictMaybe CostModels
fappCostModels
          , appPrices :: HKD StrictMaybe Prices
Ledger.appPrices = StrictMaybe Prices
HKD StrictMaybe Prices
fappPrices
          , appMaxTxExUnits :: HKD StrictMaybe OrdExUnits
Ledger.appMaxTxExUnits = StrictMaybe OrdExUnits
HKD StrictMaybe OrdExUnits
fappMaxTxExUnits
          , appMaxBlockExUnits :: HKD StrictMaybe OrdExUnits
Ledger.appMaxBlockExUnits = StrictMaybe OrdExUnits
HKD StrictMaybe OrdExUnits
fappMaxBlockExUnits
          , appMaxValSize :: HKD StrictMaybe Natural
Ledger.appMaxValSize = StrictMaybe Natural
HKD StrictMaybe Natural
fappMaxValSize
          , appCollateralPercentage :: HKD StrictMaybe Natural
Ledger.appCollateralPercentage = StrictMaybe Natural
HKD StrictMaybe Natural
fappCollateralPercentage
          , appMaxCollateralInputs :: HKD StrictMaybe Natural
Ledger.appMaxCollateralInputs = StrictMaybe Natural
HKD StrictMaybe Natural
fappMaxCollateralInputs
          }

-- We're not interested in trying to mappend the underlying `Maybe` types
-- we only want to select one or the other therefore we use `Last`.
lastMappend :: StrictMaybe a -> StrictMaybe a -> StrictMaybe a
lastMappend :: forall a. StrictMaybe a -> StrictMaybe a -> StrictMaybe a
lastMappend StrictMaybe a
a StrictMaybe a
b = Maybe a -> StrictMaybe a
forall a. Maybe a -> StrictMaybe a
Ledger.maybeToStrictMaybe (Maybe a -> StrictMaybe a)
-> (Last a -> Maybe a) -> Last a -> StrictMaybe a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Last a -> Maybe a
forall a. Last a -> Maybe a
getLast (Last a -> StrictMaybe a) -> Last a -> StrictMaybe a
forall a b. (a -> b) -> a -> b
$ StrictMaybe a -> Last a
forall a. StrictMaybe a -> Last a
strictMaybeToLast StrictMaybe a
a Last a -> Last a -> Last a
forall a. Semigroup a => a -> a -> a
<> StrictMaybe a -> Last a
forall a. StrictMaybe a -> Last a
strictMaybeToLast StrictMaybe a
b
 where
  strictMaybeToLast :: StrictMaybe a -> Last a
  strictMaybeToLast :: forall a. StrictMaybe a -> Last a
strictMaybeToLast = Maybe a -> Last a
forall a. Maybe a -> Last a
Last (Maybe a -> Last a)
-> (StrictMaybe a -> Maybe a) -> StrictMaybe a -> Last a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. StrictMaybe a -> Maybe a
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe

lastMappendWith :: (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith :: forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith a -> StrictMaybe b
l = (a -> StrictMaybe b)
-> (StrictMaybe b -> StrictMaybe b -> StrictMaybe b)
-> a
-> a
-> StrictMaybe b
forall a c. (a -> c) -> (c -> c -> c) -> a -> a -> c
under2 a -> StrictMaybe b
l StrictMaybe b -> StrictMaybe b -> StrictMaybe b
forall a. StrictMaybe a -> StrictMaybe a -> StrictMaybe a
lastMappend
 where
  under2 :: (a -> c) -> (c -> c -> c) -> a -> a -> c
  under2 :: forall a c. (a -> c) -> (c -> c -> c) -> a -> a -> c
under2 a -> c
f c -> c -> c
g a
x a
y = c -> c -> c
g (a -> c
f a
x) (a -> c
f a
y)

instance Semigroup (Ledger.BabbagePParams StrictMaybe era) where
  <> :: BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era -> BabbagePParams StrictMaybe era
(<>) BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2 =
    let fbppMinFeeA :: StrictMaybe Coin
fbppMinFeeA = (BabbagePParams StrictMaybe era -> StrictMaybe Coin)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Coin
BabbagePParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
Ledger.bppMinFeeA BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppMinFeeB :: StrictMaybe Coin
fbppMinFeeB = (BabbagePParams StrictMaybe era -> StrictMaybe Coin)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Coin
BabbagePParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
Ledger.bppMinFeeB BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppMaxBBSize :: StrictMaybe Word32
fbppMaxBBSize = (BabbagePParams StrictMaybe era -> StrictMaybe Word32)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Word32
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Word32
BabbagePParams StrictMaybe era -> HKD StrictMaybe Word32
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word32
Ledger.bppMaxBBSize BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppMaxTxSize :: StrictMaybe Word32
fbppMaxTxSize = (BabbagePParams StrictMaybe era -> StrictMaybe Word32)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Word32
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Word32
BabbagePParams StrictMaybe era -> HKD StrictMaybe Word32
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word32
Ledger.bppMaxTxSize BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppMaxBHSize :: StrictMaybe Word16
fbppMaxBHSize = (BabbagePParams StrictMaybe era -> StrictMaybe Word16)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Word16
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Word16
BabbagePParams StrictMaybe era -> HKD StrictMaybe Word16
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word16
Ledger.bppMaxBHSize BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppKeyDeposit :: StrictMaybe Coin
fbppKeyDeposit = (BabbagePParams StrictMaybe era -> StrictMaybe Coin)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Coin
BabbagePParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
Ledger.bppKeyDeposit BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppPoolDeposit :: StrictMaybe Coin
fbppPoolDeposit = (BabbagePParams StrictMaybe era -> StrictMaybe Coin)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Coin
BabbagePParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
Ledger.bppPoolDeposit BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppEMax :: StrictMaybe EpochInterval
fbppEMax = (BabbagePParams StrictMaybe era -> StrictMaybe EpochInterval)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe EpochInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe EpochInterval
BabbagePParams StrictMaybe era -> HKD StrictMaybe EpochInterval
forall (f :: * -> *) era.
BabbagePParams f era -> HKD f EpochInterval
Ledger.bppEMax BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppNOpt :: StrictMaybe Word16
fbppNOpt = (BabbagePParams StrictMaybe era -> StrictMaybe Word16)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Word16
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Word16
BabbagePParams StrictMaybe era -> HKD StrictMaybe Word16
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word16
Ledger.bppNOpt BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppA0 :: StrictMaybe NonNegativeInterval
fbppA0 = (BabbagePParams StrictMaybe era -> StrictMaybe NonNegativeInterval)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe NonNegativeInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe NonNegativeInterval
BabbagePParams StrictMaybe era
-> HKD StrictMaybe NonNegativeInterval
forall (f :: * -> *) era.
BabbagePParams f era -> HKD f NonNegativeInterval
Ledger.bppA0 BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppRho :: StrictMaybe UnitInterval
fbppRho = (BabbagePParams StrictMaybe era -> StrictMaybe UnitInterval)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe UnitInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe UnitInterval
BabbagePParams StrictMaybe era -> HKD StrictMaybe UnitInterval
forall (f :: * -> *) era.
BabbagePParams f era -> HKD f UnitInterval
Ledger.bppRho BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppTau :: StrictMaybe UnitInterval
fbppTau = (BabbagePParams StrictMaybe era -> StrictMaybe UnitInterval)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe UnitInterval
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe UnitInterval
BabbagePParams StrictMaybe era -> HKD StrictMaybe UnitInterval
forall (f :: * -> *) era.
BabbagePParams f era -> HKD f UnitInterval
Ledger.bppTau BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppProtocolVersion :: StrictMaybe ProtVer
fbppProtocolVersion = (BabbagePParams StrictMaybe era -> StrictMaybe ProtVer)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe ProtVer
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe ProtVer
BabbagePParams StrictMaybe era -> HKD StrictMaybe ProtVer
forall (f :: * -> *) era. BabbagePParams f era -> HKD f ProtVer
Ledger.bppProtocolVersion BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppMinPoolCost :: StrictMaybe Coin
fbppMinPoolCost = (BabbagePParams StrictMaybe era -> StrictMaybe Coin)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Coin
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Coin
BabbagePParams StrictMaybe era -> HKD StrictMaybe Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
Ledger.bppMinPoolCost BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppCoinsPerUTxOByte :: StrictMaybe CoinPerByte
fbppCoinsPerUTxOByte = (BabbagePParams StrictMaybe era -> StrictMaybe CoinPerByte)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe CoinPerByte
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe CoinPerByte
BabbagePParams StrictMaybe era -> HKD StrictMaybe CoinPerByte
forall (f :: * -> *) era. BabbagePParams f era -> HKD f CoinPerByte
Ledger.bppCoinsPerUTxOByte BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppCostModels :: StrictMaybe CostModels
fbppCostModels = (BabbagePParams StrictMaybe era -> StrictMaybe CostModels)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe CostModels
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe CostModels
BabbagePParams StrictMaybe era -> HKD StrictMaybe CostModels
forall (f :: * -> *) era. BabbagePParams f era -> HKD f CostModels
Ledger.bppCostModels BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppPrices :: StrictMaybe Prices
fbppPrices = (BabbagePParams StrictMaybe era -> StrictMaybe Prices)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Prices
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Prices
BabbagePParams StrictMaybe era -> HKD StrictMaybe Prices
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Prices
Ledger.bppPrices BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppMaxTxExUnits :: StrictMaybe OrdExUnits
fbppMaxTxExUnits = (BabbagePParams StrictMaybe era -> StrictMaybe OrdExUnits)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe OrdExUnits
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe OrdExUnits
BabbagePParams StrictMaybe era -> HKD StrictMaybe OrdExUnits
forall (f :: * -> *) era. BabbagePParams f era -> HKD f OrdExUnits
Ledger.bppMaxTxExUnits BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppMaxBlockExUnits :: StrictMaybe OrdExUnits
fbppMaxBlockExUnits = (BabbagePParams StrictMaybe era -> StrictMaybe OrdExUnits)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe OrdExUnits
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe OrdExUnits
BabbagePParams StrictMaybe era -> HKD StrictMaybe OrdExUnits
forall (f :: * -> *) era. BabbagePParams f era -> HKD f OrdExUnits
Ledger.bppMaxBlockExUnits BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppMaxValSize :: StrictMaybe Natural
fbppMaxValSize = (BabbagePParams StrictMaybe era -> StrictMaybe Natural)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Natural
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Natural
BabbagePParams StrictMaybe era -> HKD StrictMaybe Natural
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Natural
Ledger.bppMaxValSize BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppCollateralPercentage :: StrictMaybe Natural
fbppCollateralPercentage = (BabbagePParams StrictMaybe era -> StrictMaybe Natural)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Natural
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Natural
BabbagePParams StrictMaybe era -> HKD StrictMaybe Natural
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Natural
Ledger.bppCollateralPercentage BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
        fbppMaxCollateralInputs :: StrictMaybe Natural
fbppMaxCollateralInputs = (BabbagePParams StrictMaybe era -> StrictMaybe Natural)
-> BabbagePParams StrictMaybe era
-> BabbagePParams StrictMaybe era
-> StrictMaybe Natural
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith BabbagePParams StrictMaybe era -> StrictMaybe Natural
BabbagePParams StrictMaybe era -> HKD StrictMaybe Natural
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Natural
Ledger.bppMaxCollateralInputs BabbagePParams StrictMaybe era
p1 BabbagePParams StrictMaybe era
p2
     in Ledger.BabbagePParams
          { bppMinFeeA :: HKD StrictMaybe Coin
Ledger.bppMinFeeA = StrictMaybe Coin
HKD StrictMaybe Coin
fbppMinFeeA
          , bppMinFeeB :: HKD StrictMaybe Coin
Ledger.bppMinFeeB = StrictMaybe Coin
HKD StrictMaybe Coin
fbppMinFeeB
          , bppMaxBBSize :: HKD StrictMaybe Word32
Ledger.bppMaxBBSize = StrictMaybe Word32
HKD StrictMaybe Word32
fbppMaxBBSize
          , bppMaxTxSize :: HKD StrictMaybe Word32
Ledger.bppMaxTxSize = StrictMaybe Word32
HKD StrictMaybe Word32
fbppMaxTxSize
          , bppMaxBHSize :: HKD StrictMaybe Word16
Ledger.bppMaxBHSize = StrictMaybe Word16
HKD StrictMaybe Word16
fbppMaxBHSize
          , bppKeyDeposit :: HKD StrictMaybe Coin
Ledger.bppKeyDeposit = StrictMaybe Coin
HKD StrictMaybe Coin
fbppKeyDeposit
          , bppPoolDeposit :: HKD StrictMaybe Coin
Ledger.bppPoolDeposit = StrictMaybe Coin
HKD StrictMaybe Coin
fbppPoolDeposit
          , bppEMax :: HKD StrictMaybe EpochInterval
Ledger.bppEMax = StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
fbppEMax
          , bppNOpt :: HKD StrictMaybe Word16
Ledger.bppNOpt = StrictMaybe Word16
HKD StrictMaybe Word16
fbppNOpt
          , bppA0 :: HKD StrictMaybe NonNegativeInterval
Ledger.bppA0 = StrictMaybe NonNegativeInterval
HKD StrictMaybe NonNegativeInterval
fbppA0
          , bppRho :: HKD StrictMaybe UnitInterval
Ledger.bppRho = StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
fbppRho
          , bppTau :: HKD StrictMaybe UnitInterval
Ledger.bppTau = StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
fbppTau
          , bppProtocolVersion :: HKD StrictMaybe ProtVer
Ledger.bppProtocolVersion = StrictMaybe ProtVer
HKD StrictMaybe ProtVer
fbppProtocolVersion
          , bppMinPoolCost :: HKD StrictMaybe Coin
Ledger.bppMinPoolCost = StrictMaybe Coin
HKD StrictMaybe Coin
fbppMinPoolCost
          , bppCoinsPerUTxOByte :: HKD StrictMaybe CoinPerByte
Ledger.bppCoinsPerUTxOByte = StrictMaybe CoinPerByte
HKD StrictMaybe CoinPerByte
fbppCoinsPerUTxOByte
          , bppCostModels :: HKD StrictMaybe CostModels
Ledger.bppCostModels = StrictMaybe CostModels
HKD StrictMaybe CostModels
fbppCostModels
          , bppPrices :: HKD StrictMaybe Prices
Ledger.bppPrices = StrictMaybe Prices
HKD StrictMaybe Prices
fbppPrices
          , bppMaxTxExUnits :: HKD StrictMaybe OrdExUnits
Ledger.bppMaxTxExUnits = StrictMaybe OrdExUnits
HKD StrictMaybe OrdExUnits
fbppMaxTxExUnits
          , bppMaxBlockExUnits :: HKD StrictMaybe OrdExUnits
Ledger.bppMaxBlockExUnits = StrictMaybe OrdExUnits
HKD StrictMaybe OrdExUnits
fbppMaxBlockExUnits
          , bppMaxValSize :: HKD StrictMaybe Natural
Ledger.bppMaxValSize = StrictMaybe Natural
HKD StrictMaybe Natural
fbppMaxValSize
          , bppCollateralPercentage :: HKD StrictMaybe Natural
Ledger.bppCollateralPercentage = StrictMaybe Natural
HKD StrictMaybe Natural
fbppCollateralPercentage
          , bppMaxCollateralInputs :: HKD StrictMaybe Natural
Ledger.bppMaxCollateralInputs = StrictMaybe Natural
HKD StrictMaybe Natural
fbppMaxCollateralInputs
          }

instance Semigroup (Ledger.ConwayPParams StrictMaybe era) where
  <> :: ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era -> ConwayPParams StrictMaybe era
(<>) ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2 =
    Ledger.ConwayPParams
      { cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
Ledger.cppMinFeeA = (ConwayPParams StrictMaybe era
 -> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
Ledger.cppMinFeeA ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
Ledger.cppMinFeeB = (ConwayPParams StrictMaybe era
 -> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
Ledger.cppMinFeeB ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
Ledger.cppMaxBBSize = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
Ledger.cppMaxBBSize ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
Ledger.cppMaxTxSize = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
Ledger.cppMaxTxSize ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
Ledger.cppMaxBHSize = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
Ledger.cppMaxBHSize ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
Ledger.cppKeyDeposit = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
Ledger.cppKeyDeposit ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
Ledger.cppPoolDeposit = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
Ledger.cppPoolDeposit ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppEMax :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  EpochInterval
Ledger.cppEMax = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
      StrictMaybe
      EpochInterval)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     EpochInterval
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
Ledger.cppEMax ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppNOpt :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
Ledger.cppNOpt = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
Ledger.cppNOpt ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  NonNegativeInterval
Ledger.cppA0 = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
      StrictMaybe
      NonNegativeInterval)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     NonNegativeInterval
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     NonNegativeInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
Ledger.cppA0 ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppRho :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
Ledger.cppRho = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
      StrictMaybe
      UnitInterval)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
Ledger.cppRho ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppTau :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
Ledger.cppTau = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
      StrictMaybe
      UnitInterval)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
Ledger.cppTau ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppProtocolVersion :: HKDNoUpdate StrictMaybe ProtVer
Ledger.cppProtocolVersion = HKDNoUpdate StrictMaybe ProtVer
NoUpdate ProtVer
forall a. NoUpdate a
NoUpdate -- For conway, protocol version cannot be changed via `PParamsUpdate`
      , cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
Ledger.cppMinPoolCost = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
Ledger.cppMinPoolCost ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppCoinsPerUTxOByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
Ledger.cppCoinsPerUTxOByte = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
Ledger.cppCoinsPerUTxOByte ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppCostModels :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  CostModels
Ledger.cppCostModels = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
      StrictMaybe
      CostModels)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     CostModels
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     CostModels
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
Ledger.cppCostModels ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppPrices :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
Ledger.cppPrices = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
Ledger.cppPrices ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppMaxTxExUnits :: THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
Ledger.cppMaxTxExUnits = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
Ledger.cppMaxTxExUnits ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppMaxBlockExUnits :: THKD
  ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
Ledger.cppMaxBlockExUnits = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
Ledger.cppMaxBlockExUnits ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
Ledger.cppMaxValSize = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
Ledger.cppMaxValSize ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppCollateralPercentage :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
Ledger.cppCollateralPercentage = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
Ledger.cppCollateralPercentage ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
Ledger.cppMaxCollateralInputs = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
Ledger.cppMaxCollateralInputs ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppPoolVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  PoolVotingThresholds
Ledger.cppPoolVotingThresholds = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'GovGroup 'NoStakePoolGroup)
      StrictMaybe
      PoolVotingThresholds)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     PoolVotingThresholds
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     PoolVotingThresholds
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
Ledger.cppPoolVotingThresholds ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppDRepVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  DRepVotingThresholds
Ledger.cppDRepVotingThresholds = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'GovGroup 'NoStakePoolGroup)
      StrictMaybe
      DRepVotingThresholds)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     DRepVotingThresholds
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     DRepVotingThresholds
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
Ledger.cppDRepVotingThresholds ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
Ledger.cppCommitteeMinSize = (ConwayPParams StrictMaybe era
 -> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
Ledger.cppCommitteeMinSize ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppCommitteeMaxTermLength :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
Ledger.cppCommitteeMaxTermLength = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
Ledger.cppCommitteeMaxTermLength ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppGovActionLifetime :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
Ledger.cppGovActionLifetime = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
Ledger.cppGovActionLifetime ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
Ledger.cppGovActionDeposit = (ConwayPParams StrictMaybe era
 -> THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
Ledger.cppGovActionDeposit ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
Ledger.cppDRepDeposit = (ConwayPParams StrictMaybe era
 -> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
Ledger.cppDRepDeposit ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppDRepActivity :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
Ledger.cppDRepActivity = (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
Ledger.cppDRepActivity ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      , cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  StrictMaybe
  NonNegativeInterval
Ledger.cppMinFeeRefScriptCostPerByte =
          (ConwayPParams StrictMaybe era
 -> THKD
      ('PPGroups 'EconomicGroup 'SecurityGroup)
      StrictMaybe
      NonNegativeInterval)
-> ConwayPParams StrictMaybe era
-> ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup)
     StrictMaybe
     NonNegativeInterval
forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup)
     StrictMaybe
     NonNegativeInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
Ledger.cppMinFeeRefScriptCostPerByte ConwayPParams StrictMaybe era
p1 ConwayPParams StrictMaybe era
p2
      }

lastMappendWithTHKD :: (a -> Ledger.THKD g StrictMaybe b) -> a -> a -> Ledger.THKD g StrictMaybe b
lastMappendWithTHKD :: forall a (g :: PPGroups) b.
(a -> THKD g StrictMaybe b) -> a -> a -> THKD g StrictMaybe b
lastMappendWithTHKD a -> THKD g StrictMaybe b
f a
a a
b = HKD StrictMaybe b -> THKD g StrictMaybe b
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
Ledger.THKD (HKD StrictMaybe b -> THKD g StrictMaybe b)
-> HKD StrictMaybe b -> THKD g StrictMaybe b
forall a b. (a -> b) -> a -> b
$ (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
forall a b. (a -> StrictMaybe b) -> a -> a -> StrictMaybe b
lastMappendWith (THKD g StrictMaybe b -> StrictMaybe b
THKD g StrictMaybe b -> HKD StrictMaybe b
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
Ledger.unTHKD (THKD g StrictMaybe b -> StrictMaybe b)
-> (a -> THKD g StrictMaybe b) -> a -> StrictMaybe b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> THKD g StrictMaybe b
f) a
a a
b

instance Pretty Mux.Error where
  pretty :: forall ann. Error -> Doc ann
pretty Error
err = Doc ann
"Mux layer error:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Error -> Doc ann
forall a ann. Exception a => a -> Doc ann
prettyException Error
err

-- TODO upstream to cardano-ledger
instance IsList (ListMap k a) where
  type Item (ListMap k a) = (k, a)
  fromList :: [Item (ListMap k a)] -> ListMap k a
fromList = [(k, a)] -> ListMap k a
[Item (ListMap k a)] -> ListMap k a
forall k v. [(k, v)] -> ListMap k v
ListMap.fromList
  toList :: ListMap k a -> [Item (ListMap k a)]
toList = ListMap k a -> [(k, a)]
ListMap k a -> [Item (ListMap k a)]
forall k v. ListMap k v -> [(k, v)]
ListMap.toList