Safe Haskell | None |
---|---|
Language | Haskell2010 |
Cardano.Slotting.EpochInfo.API
Contents
Synopsis
- data EpochInfo m = EpochInfo {
- epochInfoSize_ :: HasCallStack => EpochNo -> m EpochSize
- epochInfoFirst_ :: HasCallStack => EpochNo -> m SlotNo
- epochInfoEpoch_ :: HasCallStack => SlotNo -> m EpochNo
- epochInfoSize :: HasCallStack => EpochInfo m -> EpochNo -> m EpochSize
- epochInfoFirst :: HasCallStack => EpochInfo m -> EpochNo -> m SlotNo
- epochInfoEpoch :: HasCallStack => EpochInfo m -> SlotNo -> m EpochNo
- epochInfoRange :: Monad m => EpochInfo m -> EpochNo -> m (SlotNo, SlotNo)
- hoistEpochInfo :: (forall a. m a -> n a) -> EpochInfo m -> EpochInfo n
- generalizeEpochInfo :: Monad m => EpochInfo Identity -> EpochInfo m
Documentation
Information about epochs
Epochs may have different sizes at different times during the lifetime of the
blockchain. This information is encapsulated by EpochInfo
; it is
parameterized over a monad m
because the information about how long each
epoch is may depend on information derived from the blockchain itself, and
hence requires access to state.
The other functions provide some derived information from epoch sizes. In the
default implementation all of these functions query and update an internal
cache maintaining cumulative epoch sizes; for that reason, all of these
functions live in a monad m
.
Constructors
EpochInfo | |
Fields
|
epochInfoSize :: HasCallStack => EpochInfo m -> EpochNo -> m EpochSize Source #
epochInfoFirst :: HasCallStack => EpochInfo m -> EpochNo -> m SlotNo Source #
epochInfoEpoch :: HasCallStack => EpochInfo m -> SlotNo -> m EpochNo Source #
Utility
hoistEpochInfo :: (forall a. m a -> n a) -> EpochInfo m -> EpochInfo n Source #