{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Ouroboros.Consensus.Cardano.StreamingLedgerTables ( mkInMemYieldArgs , mkInMemSinkArgs ) where import Cardano.Ledger.Binary import Cardano.Ledger.Core (ByronEra, Era, eraDecoder, toEraCBOR) import qualified Cardano.Ledger.Shelley.API as SL import qualified Cardano.Ledger.Shelley.LedgerState as SL import qualified Cardano.Ledger.State as SL import qualified Codec.CBOR.Encoding import Data.Proxy import Data.SOP.BasicFunctors import Data.SOP.Functors import Data.SOP.Strict import qualified Data.SOP.Telescope as Telescope import Lens.Micro import Ouroboros.Consensus.Byron.Ledger import Ouroboros.Consensus.Cardano.Block import Ouroboros.Consensus.Cardano.Ledger import Ouroboros.Consensus.HardFork.Combinator import Ouroboros.Consensus.HardFork.Combinator.State import Ouroboros.Consensus.Ledger.Abstract import Ouroboros.Consensus.Shelley.Ledger import Ouroboros.Consensus.Shelley.Ledger.SupportsProtocol () import Ouroboros.Consensus.Storage.LedgerDB.API import Ouroboros.Consensus.Storage.LedgerDB.Snapshots import Ouroboros.Consensus.Storage.LedgerDB.V2.InMemory as V2 import System.FS.API type L = LedgerState (CardanoBlock StandardCrypto) mkInMemYieldArgs :: SomeHasFS IO -> DiskSnapshot -> L EmptyMK -> YieldArgs IO V2.Mem LedgerState (CardanoBlock StandardCrypto) mkInMemYieldArgs :: SomeHasFS IO -> DiskSnapshot -> L EmptyMK -> YieldArgs IO Mem LedgerState (CardanoBlock StandardCrypto) mkInMemYieldArgs SomeHasFS IO fs DiskSnapshot ds (HardForkLedgerState (HardForkState Telescope (K Past) (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) idx)) = let np :: NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) np :: NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) np = ((Current (Flip LedgerState EmptyMK) ByronBlock -> K (Decoders (CardanoBlock StandardCrypto)) ByronBlock) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) ByronBlock forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((Current (Flip LedgerState EmptyMK) ByronBlock -> K (Decoders (CardanoBlock StandardCrypto)) ByronBlock) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) ByronBlock) -> (Current (Flip LedgerState EmptyMK) ByronBlock -> K (Decoders (CardanoBlock StandardCrypto)) ByronBlock) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) ByronBlock forall a b. (a -> b) -> a -> b $ Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) ByronBlock forall k a (b :: k). a -> K a b K (Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) ByronBlock) -> (Current (Flip LedgerState EmptyMK) ByronBlock -> Decoders (CardanoBlock StandardCrypto)) -> Current (Flip LedgerState EmptyMK) ByronBlock -> K (Decoders (CardanoBlock StandardCrypto)) ByronBlock forall b c a. (b -> c) -> (a -> b) -> a -> c . (\LedgerState ByronBlock EmptyMK _ -> (forall s. Decoder s (TxIn (CardanoBlock StandardCrypto))) -> (forall s. Decoder s (TxOut (CardanoBlock StandardCrypto))) -> Decoders (CardanoBlock StandardCrypto) forall blk. (forall s. Decoder s (TxIn blk)) -> (forall s. Decoder s (TxOut blk)) -> Decoders blk Decoders ([Char] -> Decoder s (CanonicalTxIn (CardanoEras StandardCrypto)) forall a. HasCallStack => [Char] -> a error [Char] "Byron") ([Char] -> Decoder s (CardanoTxOut StandardCrypto) forall a. HasCallStack => [Char] -> a error [Char] "Byron")) (LedgerState ByronBlock EmptyMK -> Decoders (CardanoBlock StandardCrypto)) -> (Current (Flip LedgerState EmptyMK) ByronBlock -> LedgerState ByronBlock EmptyMK) -> Current (Flip LedgerState EmptyMK) ByronBlock -> Decoders (CardanoBlock StandardCrypto) forall b c a. (b -> c) -> (a -> b) -> a -> c . Flip LedgerState EmptyMK ByronBlock -> LedgerState ByronBlock EmptyMK forall x1 y1 (f :: x1 -> y1 -> *) (x2 :: y1) (y2 :: x1). Flip f x2 y2 -> f y2 x2 unFlip (Flip LedgerState EmptyMK ByronBlock -> LedgerState ByronBlock EmptyMK) -> (Current (Flip LedgerState EmptyMK) ByronBlock -> Flip LedgerState EmptyMK ByronBlock) -> Current (Flip LedgerState EmptyMK) ByronBlock -> LedgerState ByronBlock EmptyMK forall b c a. (b -> c) -> (a -> b) -> a -> c . Current (Flip LedgerState EmptyMK) ByronBlock -> Flip LedgerState EmptyMK ByronBlock forall (f :: * -> *) blk. Current f blk -> f blk currentState) (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) ByronBlock -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (TPraos StandardCrypto) ShelleyEra, ShelleyBlock (TPraos StandardCrypto) AllegraEra, ShelleyBlock (TPraos StandardCrypto) MaryEra, ShelleyBlock (TPraos StandardCrypto) AlonzoEra, ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) forall a b. (a -> b) -> a -> b $ Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) forall k a (b :: k). a -> K a b K (Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> Decoders (CardanoBlock StandardCrypto)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (TxOut (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto) forall proto era. ShelleyCompatible proto era => (TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock proto era) EmptyMK -> Decoders (CardanoBlock StandardCrypto) fromEra TxOut (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> CardanoTxOut StandardCrypto forall c. TxOut (ShelleyBlock (TPraos c) ShelleyEra) -> CardanoTxOut c ShelleyTxOut (LedgerState (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) EmptyMK) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> Decoders (CardanoBlock StandardCrypto) forall b c a. (b -> c) -> (a -> b) -> a -> c . Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) EmptyMK forall x1 y1 (f :: x1 -> y1 -> *) (x2 :: y1) (y2 :: x1). Flip f x2 y2 -> f y2 x2 unFlip (Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) EmptyMK) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) ShelleyEra)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) EmptyMK forall b c a. (b -> c) -> (a -> b) -> a -> c . Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) forall (f :: * -> *) blk. Current f blk -> f blk currentState) (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) ShelleyEra) -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (TPraos StandardCrypto) AllegraEra, ShelleyBlock (TPraos StandardCrypto) MaryEra, ShelleyBlock (TPraos StandardCrypto) AlonzoEra, ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (TPraos StandardCrypto) ShelleyEra, ShelleyBlock (TPraos StandardCrypto) AllegraEra, ShelleyBlock (TPraos StandardCrypto) MaryEra, ShelleyBlock (TPraos StandardCrypto) AlonzoEra, ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AllegraEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AllegraEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) AllegraEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AllegraEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) forall a b. (a -> b) -> a -> b $ Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) forall k a (b :: k). a -> K a b K (Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AllegraEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> Decoders (CardanoBlock StandardCrypto)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (TxOut (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AllegraEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto) forall proto era. ShelleyCompatible proto era => (TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock proto era) EmptyMK -> Decoders (CardanoBlock StandardCrypto) fromEra TxOut (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> CardanoTxOut StandardCrypto forall c. TxOut (ShelleyBlock (TPraos c) AllegraEra) -> CardanoTxOut c AllegraTxOut (LedgerState (ShelleyBlock (TPraos StandardCrypto) AllegraEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AllegraEra) EmptyMK) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> Decoders (CardanoBlock StandardCrypto) forall b c a. (b -> c) -> (a -> b) -> a -> c . Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AllegraEra) EmptyMK forall x1 y1 (f :: x1 -> y1 -> *) (x2 :: y1) (y2 :: x1). Flip f x2 y2 -> f y2 x2 unFlip (Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AllegraEra) EmptyMK) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) AllegraEra)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AllegraEra) EmptyMK forall b c a. (b -> c) -> (a -> b) -> a -> c . Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) AllegraEra) forall (f :: * -> *) blk. Current f blk -> f blk currentState) (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) AllegraEra) -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (TPraos StandardCrypto) MaryEra, ShelleyBlock (TPraos StandardCrypto) AlonzoEra, ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (TPraos StandardCrypto) AllegraEra, ShelleyBlock (TPraos StandardCrypto) MaryEra, ShelleyBlock (TPraos StandardCrypto) AlonzoEra, ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) MaryEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) MaryEra) forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) MaryEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) MaryEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) MaryEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) MaryEra) forall a b. (a -> b) -> a -> b $ Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) MaryEra) forall k a (b :: k). a -> K a b K (Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) MaryEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> Decoders (CardanoBlock StandardCrypto)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) MaryEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (TxOut (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) MaryEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto) forall proto era. ShelleyCompatible proto era => (TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock proto era) EmptyMK -> Decoders (CardanoBlock StandardCrypto) fromEra TxOut (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> CardanoTxOut StandardCrypto forall c. TxOut (ShelleyBlock (TPraos c) MaryEra) -> CardanoTxOut c MaryTxOut (LedgerState (ShelleyBlock (TPraos StandardCrypto) MaryEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) MaryEra) EmptyMK) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> Decoders (CardanoBlock StandardCrypto) forall b c a. (b -> c) -> (a -> b) -> a -> c . Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) MaryEra) EmptyMK forall x1 y1 (f :: x1 -> y1 -> *) (x2 :: y1) (y2 :: x1). Flip f x2 y2 -> f y2 x2 unFlip (Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) MaryEra) EmptyMK) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) MaryEra)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) MaryEra) EmptyMK forall b c a. (b -> c) -> (a -> b) -> a -> c . Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) MaryEra) forall (f :: * -> *) blk. Current f blk -> f blk currentState) (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) MaryEra) -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (TPraos StandardCrypto) AlonzoEra, ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (TPraos StandardCrypto) MaryEra, ShelleyBlock (TPraos StandardCrypto) AlonzoEra, ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) forall a b. (a -> b) -> a -> b $ Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) forall k a (b :: k). a -> K a b K (Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> Decoders (CardanoBlock StandardCrypto)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (TxOut (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto) forall proto era. ShelleyCompatible proto era => (TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock proto era) EmptyMK -> Decoders (CardanoBlock StandardCrypto) fromEra TxOut (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> CardanoTxOut StandardCrypto forall c. TxOut (ShelleyBlock (TPraos c) AlonzoEra) -> CardanoTxOut c AlonzoTxOut (LedgerState (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) EmptyMK) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> Decoders (CardanoBlock StandardCrypto) forall b c a. (b -> c) -> (a -> b) -> a -> c . Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) EmptyMK forall x1 y1 (f :: x1 -> y1 -> *) (x2 :: y1) (y2 :: x1). Flip f x2 y2 -> f y2 x2 unFlip (Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) EmptyMK) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) AlonzoEra)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> LedgerState (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) EmptyMK forall b c a. (b -> c) -> (a -> b) -> a -> c . Current (Flip LedgerState EmptyMK) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> Flip LedgerState EmptyMK (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) forall (f :: * -> *) blk. Current f blk -> f blk currentState) (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (TPraos StandardCrypto) AlonzoEra) -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (TPraos StandardCrypto) AlonzoEra, ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) BabbageEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) BabbageEra) forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) BabbageEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) BabbageEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) BabbageEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) BabbageEra) forall a b. (a -> b) -> a -> b $ Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) BabbageEra) forall k a (b :: k). a -> K a b K (Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) BabbageEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> Decoders (CardanoBlock StandardCrypto)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) BabbageEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (TxOut (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock (Praos StandardCrypto) BabbageEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto) forall proto era. ShelleyCompatible proto era => (TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock proto era) EmptyMK -> Decoders (CardanoBlock StandardCrypto) fromEra TxOut (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> CardanoTxOut StandardCrypto forall c. TxOut (ShelleyBlock (Praos c) BabbageEra) -> CardanoTxOut c BabbageTxOut (LedgerState (ShelleyBlock (Praos StandardCrypto) BabbageEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) BabbageEra) EmptyMK) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> Decoders (CardanoBlock StandardCrypto) forall b c a. (b -> c) -> (a -> b) -> a -> c . Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) BabbageEra) EmptyMK forall x1 y1 (f :: x1 -> y1 -> *) (x2 :: y1) (y2 :: x1). Flip f x2 y2 -> f y2 x2 unFlip (Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) BabbageEra) EmptyMK) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) BabbageEra)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) BabbageEra) EmptyMK forall b c a. (b -> c) -> (a -> b) -> a -> c . Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) BabbageEra) forall (f :: * -> *) blk. Current f blk -> f blk currentState) (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) BabbageEra) -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (Praos StandardCrypto) BabbageEra, ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) ConwayEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) ConwayEra) forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) ConwayEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) ConwayEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) ConwayEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) ConwayEra) forall a b. (a -> b) -> a -> b $ Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) ConwayEra) forall k a (b :: k). a -> K a b K (Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) ConwayEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> Decoders (CardanoBlock StandardCrypto)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) ConwayEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (TxOut (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock (Praos StandardCrypto) ConwayEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto) forall proto era. ShelleyCompatible proto era => (TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock proto era) EmptyMK -> Decoders (CardanoBlock StandardCrypto) fromEra TxOut (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> CardanoTxOut StandardCrypto forall c. TxOut (ShelleyBlock (Praos c) ConwayEra) -> CardanoTxOut c ConwayTxOut (LedgerState (ShelleyBlock (Praos StandardCrypto) ConwayEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) ConwayEra) EmptyMK) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> Decoders (CardanoBlock StandardCrypto) forall b c a. (b -> c) -> (a -> b) -> a -> c . Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) ConwayEra) EmptyMK forall x1 y1 (f :: x1 -> y1 -> *) (x2 :: y1) (y2 :: x1). Flip f x2 y2 -> f y2 x2 unFlip (Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) ConwayEra) EmptyMK) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) ConwayEra)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) ConwayEra) EmptyMK forall b c a. (b -> c) -> (a -> b) -> a -> c . Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) ConwayEra) forall (f :: * -> *) blk. Current f blk -> f blk currentState) (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) ConwayEra) -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (Praos StandardCrypto) DijkstraEra] -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (Praos StandardCrypto) ConwayEra, ShelleyBlock (Praos StandardCrypto) DijkstraEra] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) DijkstraEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) DijkstraEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) DijkstraEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) DijkstraEra)) -> (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) forall a b. (a -> b) -> a -> b $ Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) forall k a (b :: k). a -> K a b K (Decoders (CardanoBlock StandardCrypto) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) DijkstraEra)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> Decoders (CardanoBlock StandardCrypto)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> K (Decoders (CardanoBlock StandardCrypto)) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (TxOut (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock (Praos StandardCrypto) DijkstraEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto) forall proto era. ShelleyCompatible proto era => (TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock proto era) EmptyMK -> Decoders (CardanoBlock StandardCrypto) fromEra TxOut (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> CardanoTxOut StandardCrypto forall c. TxOut (ShelleyBlock (Praos c) DijkstraEra) -> CardanoTxOut c DijkstraTxOut (LedgerState (ShelleyBlock (Praos StandardCrypto) DijkstraEra) EmptyMK -> Decoders (CardanoBlock StandardCrypto)) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) DijkstraEra) EmptyMK) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> Decoders (CardanoBlock StandardCrypto) forall b c a. (b -> c) -> (a -> b) -> a -> c . Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) DijkstraEra) EmptyMK forall x1 y1 (f :: x1 -> y1 -> *) (x2 :: y1) (y2 :: x1). Flip f x2 y2 -> f y2 x2 unFlip (Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) DijkstraEra) EmptyMK) -> (Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) DijkstraEra)) -> Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> LedgerState (ShelleyBlock (Praos StandardCrypto) DijkstraEra) EmptyMK forall b c a. (b -> c) -> (a -> b) -> a -> c . Current (Flip LedgerState EmptyMK) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> Flip LedgerState EmptyMK (ShelleyBlock (Praos StandardCrypto) DijkstraEra) forall (f :: * -> *) blk. Current f blk -> f blk currentState) (-.->) (Current (Flip LedgerState EmptyMK)) (K (Decoders (CardanoBlock StandardCrypto))) (ShelleyBlock (Praos StandardCrypto) DijkstraEra) -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[] -> NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[ShelleyBlock (Praos StandardCrypto) DijkstraEra] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) '[] forall {k} (f :: k -> *). NP f '[] Nil in SomeHasFS IO -> DiskSnapshot -> Decoders (CardanoBlock StandardCrypto) -> YieldArgs IO Mem LedgerState (CardanoBlock StandardCrypto) forall (m :: * -> *) (l :: * -> MapKind -> *) blk. SomeHasFS m -> DiskSnapshot -> Decoders blk -> YieldArgs m Mem l blk YieldInMemory SomeHasFS IO fs DiskSnapshot ds (NS (K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) -> CollapseTo NS (Decoders (CardanoBlock StandardCrypto)) forall (xs :: [*]) a. SListIN NS xs => NS (K a) xs -> CollapseTo NS a forall k l (h :: (k -> *) -> l -> *) (xs :: l) a. (HCollapse h, SListIN h xs) => h (K a) xs -> CollapseTo h a hcollapse (NS (K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) -> CollapseTo NS (Decoders (CardanoBlock StandardCrypto))) -> NS (K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) -> CollapseTo NS (Decoders (CardanoBlock StandardCrypto)) forall a b. (a -> b) -> a -> b $ Prod NS (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) -> NS (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) -> NS (K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) forall k l (h :: (k -> *) -> l -> *) (f :: k -> *) (g :: k -> *) (xs :: l). HAp h => Prod h (f -.-> g) xs -> h f xs -> h g xs forall (f :: * -> *) (g :: * -> *) (xs :: [*]). Prod NS (f -.-> g) xs -> NS f xs -> NS g xs hap Prod NS (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) NP (Current (Flip LedgerState EmptyMK) -.-> K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) np (NS (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) -> NS (K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto)) -> NS (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) -> NS (K (Decoders (CardanoBlock StandardCrypto))) (CardanoEras StandardCrypto) forall a b. (a -> b) -> a -> b $ Telescope (K Past) (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) -> NS (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) forall {k} (g :: k -> *) (f :: k -> *) (xs :: [k]). Telescope g f xs -> NS f xs Telescope.tip Telescope (K Past) (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) idx) where fromEra :: forall proto era. ShelleyCompatible proto era => (TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock proto era) EmptyMK -> Decoders (CardanoBlock StandardCrypto) fromEra :: forall proto era. ShelleyCompatible proto era => (TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto) -> LedgerState (ShelleyBlock proto era) EmptyMK -> Decoders (CardanoBlock StandardCrypto) fromEra TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto toCardanoTxOut LedgerState (ShelleyBlock proto era) EmptyMK st = let certInterns :: Interns (Credential Staking) certInterns = Map (Credential Staking) (AccountState era) -> Interns (Credential Staking) forall k a. Ord k => Map k a -> Interns k internsFromMap (Map (Credential Staking) (AccountState era) -> Interns (Credential Staking)) -> Map (Credential Staking) (AccountState era) -> Interns (Credential Staking) forall a b. (a -> b) -> a -> b $ LedgerState (ShelleyBlock proto era) EmptyMK -> NewEpochState era forall proto era (mk :: MapKind). LedgerState (ShelleyBlock proto era) mk -> NewEpochState era shelleyLedgerState LedgerState (ShelleyBlock proto era) EmptyMK st NewEpochState era -> Getting (Map (Credential Staking) (AccountState era)) (NewEpochState era) (Map (Credential Staking) (AccountState era)) -> Map (Credential Staking) (AccountState era) forall s a. s -> Getting a s a -> a ^. (EpochState era -> Const (Map (Credential Staking) (AccountState era)) (EpochState era)) -> NewEpochState era -> Const (Map (Credential Staking) (AccountState era)) (NewEpochState era) forall era (f :: * -> *). Functor f => (EpochState era -> f (EpochState era)) -> NewEpochState era -> f (NewEpochState era) SL.nesEsL ((EpochState era -> Const (Map (Credential Staking) (AccountState era)) (EpochState era)) -> NewEpochState era -> Const (Map (Credential Staking) (AccountState era)) (NewEpochState era)) -> ((Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> EpochState era -> Const (Map (Credential Staking) (AccountState era)) (EpochState era)) -> Getting (Map (Credential Staking) (AccountState era)) (NewEpochState era) (Map (Credential Staking) (AccountState era)) forall b c a. (b -> c) -> (a -> b) -> a -> c . (LedgerState era -> Const (Map (Credential Staking) (AccountState era)) (LedgerState era)) -> EpochState era -> Const (Map (Credential Staking) (AccountState era)) (EpochState era) forall era (f :: * -> *). Functor f => (LedgerState era -> f (LedgerState era)) -> EpochState era -> f (EpochState era) SL.esLStateL ((LedgerState era -> Const (Map (Credential Staking) (AccountState era)) (LedgerState era)) -> EpochState era -> Const (Map (Credential Staking) (AccountState era)) (EpochState era)) -> ((Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> LedgerState era -> Const (Map (Credential Staking) (AccountState era)) (LedgerState era)) -> (Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> EpochState era -> Const (Map (Credential Staking) (AccountState era)) (EpochState era) forall b c a. (b -> c) -> (a -> b) -> a -> c . (CertState era -> Const (Map (Credential Staking) (AccountState era)) (CertState era)) -> LedgerState era -> Const (Map (Credential Staking) (AccountState era)) (LedgerState era) forall era (f :: * -> *). Functor f => (CertState era -> f (CertState era)) -> LedgerState era -> f (LedgerState era) SL.lsCertStateL ((CertState era -> Const (Map (Credential Staking) (AccountState era)) (CertState era)) -> LedgerState era -> Const (Map (Credential Staking) (AccountState era)) (LedgerState era)) -> ((Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> CertState era -> Const (Map (Credential Staking) (AccountState era)) (CertState era)) -> (Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> LedgerState era -> Const (Map (Credential Staking) (AccountState era)) (LedgerState era) forall b c a. (b -> c) -> (a -> b) -> a -> c . (DState era -> Const (Map (Credential Staking) (AccountState era)) (DState era)) -> CertState era -> Const (Map (Credential Staking) (AccountState era)) (CertState era) forall era. EraCertState era => Lens' (CertState era) (DState era) Lens' (CertState era) (DState era) SL.certDStateL ((DState era -> Const (Map (Credential Staking) (AccountState era)) (DState era)) -> CertState era -> Const (Map (Credential Staking) (AccountState era)) (CertState era)) -> ((Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> DState era -> Const (Map (Credential Staking) (AccountState era)) (DState era)) -> (Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> CertState era -> Const (Map (Credential Staking) (AccountState era)) (CertState era) forall b c a. (b -> c) -> (a -> b) -> a -> c . (Accounts era -> Const (Map (Credential Staking) (AccountState era)) (Accounts era)) -> DState era -> Const (Map (Credential Staking) (AccountState era)) (DState era) forall era. Lens' (DState era) (Accounts era) forall (t :: * -> *) era. CanSetAccounts t => Lens' (t era) (Accounts era) SL.accountsL ((Accounts era -> Const (Map (Credential Staking) (AccountState era)) (Accounts era)) -> DState era -> Const (Map (Credential Staking) (AccountState era)) (DState era)) -> ((Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> Accounts era -> Const (Map (Credential Staking) (AccountState era)) (Accounts era)) -> (Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> DState era -> Const (Map (Credential Staking) (AccountState era)) (DState era) forall b c a. (b -> c) -> (a -> b) -> a -> c . (Map (Credential Staking) (AccountState era) -> Const (Map (Credential Staking) (AccountState era)) (Map (Credential Staking) (AccountState era))) -> Accounts era -> Const (Map (Credential Staking) (AccountState era)) (Accounts era) forall era. EraAccounts era => Lens' (Accounts era) (Map (Credential Staking) (AccountState era)) Lens' (Accounts era) (Map (Credential Staking) (AccountState era)) SL.accountsMapL in (forall s. Decoder s (TxIn (CardanoBlock StandardCrypto))) -> (forall s. Decoder s (TxOut (CardanoBlock StandardCrypto))) -> Decoders (CardanoBlock StandardCrypto) forall blk. (forall s. Decoder s (TxIn blk)) -> (forall s. Decoder s (TxOut blk)) -> Decoders blk Decoders (forall era t s. Era era => Decoder s t -> Decoder s t eraDecoder @era Decoder s (CanonicalTxIn (CardanoEras StandardCrypto)) forall a s. MemPack a => Decoder s a decodeMemPack) (forall era t s. Era era => Decoder s t -> Decoder s t eraDecoder @era (Decoder s (TxOut (CardanoBlock StandardCrypto)) -> Decoder s (TxOut (CardanoBlock StandardCrypto))) -> Decoder s (TxOut (CardanoBlock StandardCrypto)) -> Decoder s (TxOut (CardanoBlock StandardCrypto)) forall a b. (a -> b) -> a -> b $ TxOut era -> TxOut (CardanoBlock StandardCrypto) TxOut (ShelleyBlock proto era) -> CardanoTxOut StandardCrypto toCardanoTxOut (TxOut era -> TxOut (CardanoBlock StandardCrypto)) -> Decoder s (TxOut era) -> Decoder s (TxOut (CardanoBlock StandardCrypto)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Share (TxOut era) -> Decoder s (TxOut era) forall a s. DecShareCBOR a => Share a -> Decoder s a forall s. Share (TxOut era) -> Decoder s (TxOut era) decShareCBOR Share (TxOut era) Interns (Credential Staking) certInterns) mkInMemSinkArgs :: SomeHasFS IO -> DiskSnapshot -> L EmptyMK -> SinkArgs IO V2.Mem LedgerState (CardanoBlock StandardCrypto) mkInMemSinkArgs :: SomeHasFS IO -> DiskSnapshot -> L EmptyMK -> SinkArgs IO Mem LedgerState (CardanoBlock StandardCrypto) mkInMemSinkArgs SomeHasFS IO fs DiskSnapshot ds (HardForkLedgerState (HardForkState Telescope (K Past) (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) idx)) = do let np :: NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x, x, x, x, x] np = ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x) -> (f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall a b. (a -> b) -> a -> b $ K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. a -> b -> a const (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. (a -> b) -> a -> b $ (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall k a (b :: k). a -> K a b K ((TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x) -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall a b. (a -> b) -> a -> b $ Proxy ByronEra -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) forall era. Era era => Proxy era -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) encOne (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @ByronEra)) (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x, x, x, x] -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x, x, x, x, x] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x) -> (f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall a b. (a -> b) -> a -> b $ K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. a -> b -> a const (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. (a -> b) -> a -> b $ (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall k a (b :: k). a -> K a b K ((TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x) -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall a b. (a -> b) -> a -> b $ Proxy ShelleyEra -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) forall era. Era era => Proxy era -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) encOne (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @ShelleyEra)) (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x, x, x] -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x, x, x, x] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x) -> (f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall a b. (a -> b) -> a -> b $ K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. a -> b -> a const (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. (a -> b) -> a -> b $ (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall k a (b :: k). a -> K a b K ((TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x) -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall a b. (a -> b) -> a -> b $ Proxy AllegraEra -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) forall era. Era era => Proxy era -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) encOne (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @AllegraEra)) (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x, x] -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x, x, x] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x) -> (f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall a b. (a -> b) -> a -> b $ K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. a -> b -> a const (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. (a -> b) -> a -> b $ (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall k a (b :: k). a -> K a b K ((TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x) -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall a b. (a -> b) -> a -> b $ Proxy MaryEra -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) forall era. Era era => Proxy era -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) encOne (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @MaryEra)) (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x] -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x, x] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x) -> (f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall a b. (a -> b) -> a -> b $ K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. a -> b -> a const (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. (a -> b) -> a -> b $ (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall k a (b :: k). a -> K a b K ((TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x) -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall a b. (a -> b) -> a -> b $ Proxy AlonzoEra -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) forall era. Era era => Proxy era -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) encOne (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @AlonzoEra)) (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x] -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x) -> (f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall a b. (a -> b) -> a -> b $ K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. a -> b -> a const (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. (a -> b) -> a -> b $ (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall k a (b :: k). a -> K a b K ((TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x) -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall a b. (a -> b) -> a -> b $ Proxy BabbageEra -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) forall era. Era era => Proxy era -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) encOne (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @BabbageEra)) (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x] -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x) -> (f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall a b. (a -> b) -> a -> b $ K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. a -> b -> a const (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. (a -> b) -> a -> b $ (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall k a (b :: k). a -> K a b K ((TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x) -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall a b. (a -> b) -> a -> b $ Proxy ConwayEra -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) forall era. Era era => Proxy era -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) encOne (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @ConwayEra)) (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x] -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall {k} (f :: k -> *) (g :: k -> *) (a :: k). (f a -> g a) -> (-.->) f g a Fn ((f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x) -> (f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x forall a b. (a -> b) -> a -> b $ K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. a -> b -> a const (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x) -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x -> f x -> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) x forall a b. (a -> b) -> a -> b $ (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall k a (b :: k). a -> K a b K ((TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x) -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) -> K (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) x forall a b. (a -> b) -> a -> b $ Proxy DijkstraEra -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) forall era. Era era => Proxy era -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) encOne (forall t. Proxy t forall {k} (t :: k). Proxy t Proxy @DijkstraEra)) (-.->) f (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) x -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[] -> NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x] forall {k} (f :: k -> *) (x :: k) (xs1 :: [k]). f x -> NP f xs1 -> NP f (x : xs1) :* NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[] forall {k} (f :: k -> *). NP f '[] Nil (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding encTxIn, CardanoTxOut StandardCrypto -> Encoding encTxOut) = NS (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) (CardanoEras StandardCrypto) -> CollapseTo NS (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) forall (xs :: [*]) a. SListIN NS xs => NS (K a) xs -> CollapseTo NS a forall k l (h :: (k -> *) -> l -> *) (xs :: l) a. (HCollapse h, SListIN h xs) => h (K a) xs -> CollapseTo h a hcollapse (NS (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) (CardanoEras StandardCrypto) -> CollapseTo NS (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) -> NS (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) (CardanoEras StandardCrypto) -> CollapseTo NS (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding) forall a b. (a -> b) -> a -> b $ Prod NS (Current (Flip LedgerState EmptyMK) -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) (CardanoEras StandardCrypto) -> NS (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) -> NS (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) (CardanoEras StandardCrypto) forall k l (h :: (k -> *) -> l -> *) (f :: k -> *) (g :: k -> *) (xs :: l). HAp h => Prod h (f -.-> g) xs -> h f xs -> h g xs forall (f :: * -> *) (g :: * -> *) (xs :: [*]). Prod NS (f -.-> g) xs -> NS f xs -> NS g xs hap Prod NS (Current (Flip LedgerState EmptyMK) -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) (CardanoEras StandardCrypto) NP (Current (Flip LedgerState EmptyMK) -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) (CardanoEras StandardCrypto) forall {f :: * -> *} {x} {x} {x} {x} {x} {x} {x} {x}. NP (f -.-> K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) '[x, x, x, x, x, x, x, x] np (NS (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) -> NS (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) (CardanoEras StandardCrypto)) -> NS (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) -> NS (K (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding, CardanoTxOut StandardCrypto -> Encoding)) (CardanoEras StandardCrypto) forall a b. (a -> b) -> a -> b $ Telescope (K Past) (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) -> NS (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) forall {k} (g :: k -> *) (f :: k -> *) (xs :: [k]). Telescope g f xs -> NS f xs Telescope.tip Telescope (K Past) (Current (Flip LedgerState EmptyMK)) (CardanoEras StandardCrypto) idx in Int -> (TxIn (CardanoBlock StandardCrypto) -> Encoding) -> (TxOut (CardanoBlock StandardCrypto) -> Encoding) -> SomeHasFS IO -> DiskSnapshot -> SinkArgs IO Mem LedgerState (CardanoBlock StandardCrypto) forall (m :: * -> *) (l :: * -> MapKind -> *) blk. Int -> (TxIn blk -> Encoding) -> (TxOut blk -> Encoding) -> SomeHasFS m -> DiskSnapshot -> SinkArgs m Mem l blk SinkInMemory Int 1000 TxIn (CardanoBlock StandardCrypto) -> Encoding CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding encTxIn TxOut (CardanoBlock StandardCrypto) -> Encoding CardanoTxOut StandardCrypto -> Encoding encTxOut SomeHasFS IO fs DiskSnapshot ds where encOne :: forall era. Era era => Proxy era -> ( TxIn (CardanoBlock StandardCrypto) -> Codec.CBOR.Encoding.Encoding , TxOut (CardanoBlock StandardCrypto) -> Codec.CBOR.Encoding.Encoding ) encOne :: forall era. Era era => Proxy era -> (TxIn (CardanoBlock StandardCrypto) -> Encoding, TxOut (CardanoBlock StandardCrypto) -> Encoding) encOne Proxy era _ = (forall era t. (Era era, EncCBOR t) => t -> Encoding toEraCBOR @era (Encoding -> Encoding) -> (CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding) -> CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding forall b c a. (b -> c) -> (a -> b) -> a -> c . CanonicalTxIn (CardanoEras StandardCrypto) -> Encoding forall a. MemPack a => a -> Encoding encodeMemPack, forall era t. (Era era, EncCBOR t) => t -> Encoding toEraCBOR @era (Encoding -> Encoding) -> (CardanoTxOut StandardCrypto -> Encoding) -> CardanoTxOut StandardCrypto -> Encoding forall b c a. (b -> c) -> (a -> b) -> a -> c . (forall x. IsShelleyBlock x => Index (CardanoEras StandardCrypto) x -> TxOut x -> Encoding) -> CardanoTxOut StandardCrypto -> Encoding forall r c. CardanoHardForkConstraints c => (forall x. IsShelleyBlock x => Index (CardanoEras c) x -> TxOut x -> r) -> CardanoTxOut c -> r eliminateCardanoTxOut ((TxOut (ShelleyBlockLedgerEra x) -> Encoding) -> Index (CardanoEras StandardCrypto) x -> TxOut (ShelleyBlockLedgerEra x) -> Encoding forall a b. a -> b -> a const TxOut (ShelleyBlockLedgerEra x) -> Encoding forall a. MemPack a => a -> Encoding encodeMemPack))