{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
module Cardano.Ledger.Core
(
TxBody,
Value,
Script,
ChainData,
SerialisableData,
AnnotatedData,
)
where
import Cardano.Binary (Annotator, FromCBOR (..), ToCBOR (..))
import Data.Kind (Type)
import Data.Typeable (Typeable)
import NoThunks.Class (NoThunks)
type family Value era :: Type
type family TxBody era :: Type
type family Script era :: Type
type ChainData t = (Eq t, Show t, NoThunks t, Typeable t)
type SerialisableData t = (FromCBOR t, ToCBOR t)
type AnnotatedData t = (FromCBOR (Annotator t), ToCBOR t)