| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Singular.Provider.Koios.State
Description
Pure lifecycle and observation effects for the shipping Koios provider. The shared recorded transport can run directly in the same State monad.
Synopsis
- data ProviderState = ProviderState {
- nextSessionNumber :: Integer
- openSessions :: Set SessionId
- providerEvents :: [ProviderEvent]
- initialProviderState :: ProviderState
- stateRuntime :: forall (m :: Type -> Type). MonadState ProviderState m => ProviderRuntime m
- stateRuntimeIn :: forall s (m :: Type -> Type). MonadState s m => (s -> ProviderState) -> (ProviderState -> s -> s) -> ProviderRuntime m
Documentation
data ProviderState Source #
Constructors
| ProviderState | |
Fields
| |
stateRuntime :: forall (m :: Type -> Type). MonadState ProviderState m => ProviderRuntime m Source #
Every acquisition allocates a fresh identity, then releases it before returning. No IORef, external clock or process state is involved.
stateRuntimeIn :: forall s (m :: Type -> Type). MonadState s m => (s -> ProviderState) -> (ProviderState -> s -> s) -> ProviderRuntime m Source #
Compose the same pure lifecycle into a caller's larger State value, such as a logical clock or wallet model, without hiding external effects.