{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralisedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE StandaloneKindSignatures #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
module Ouroboros.Consensus.Ledger.Tables.Basics
(
LedgerStateKind
, MapKind
, StateKind
, LedgerTables (..)
, TxIn
, TxOut
) where
import Data.Kind (Type)
import GHC.Generics (Generic)
import NoThunks.Class (NoThunks)
import Ouroboros.Consensus.Ledger.Tables.Kinds
type LedgerTables :: Type -> MapKind -> Type
newtype LedgerTables blk mk = LedgerTables
{ forall blk (mk :: MapKind).
LedgerTables blk mk -> mk (TxIn blk) (TxOut blk)
getLedgerTables :: mk (TxIn blk) (TxOut blk)
}
deriving stock (forall x. LedgerTables blk mk -> Rep (LedgerTables blk mk) x)
-> (forall x. Rep (LedgerTables blk mk) x -> LedgerTables blk mk)
-> Generic (LedgerTables blk mk)
forall x. Rep (LedgerTables blk mk) x -> LedgerTables blk mk
forall x. LedgerTables blk mk -> Rep (LedgerTables blk mk) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall blk (mk :: MapKind) x.
Rep (LedgerTables blk mk) x -> LedgerTables blk mk
forall blk (mk :: MapKind) x.
LedgerTables blk mk -> Rep (LedgerTables blk mk) x
$cfrom :: forall blk (mk :: MapKind) x.
LedgerTables blk mk -> Rep (LedgerTables blk mk) x
from :: forall x. LedgerTables blk mk -> Rep (LedgerTables blk mk) x
$cto :: forall blk (mk :: MapKind) x.
Rep (LedgerTables blk mk) x -> LedgerTables blk mk
to :: forall x. Rep (LedgerTables blk mk) x -> LedgerTables blk mk
Generic
deriving stock instance
Show (mk (TxIn blk) (TxOut blk)) =>
Show (LedgerTables blk mk)
deriving stock instance
Eq (mk (TxIn blk) (TxOut blk)) =>
Eq (LedgerTables blk mk)
deriving newtype instance
NoThunks (mk (TxIn blk) (TxOut blk)) =>
NoThunks (LedgerTables blk mk)
type TxIn :: Type -> Type
type family TxIn blk
type TxOut :: Type -> Type
type family TxOut blk