data-effects-0.4.0.2: A basic framework for effect systems based on effects represented by GADTs.
Copyright(c) 2025 Sayo contributors
LicenseMPL-2.0 (see the file LICENSE)
Maintainerymdfield@outlook.jp
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Effect.KVStore

Description

This module provides the KVStore effect, comes from Polysemy.KVStore in the polysemy-kvstore package.

Documentation

data KVStore k v :: Effect where Source #

Constructors

LookupKV :: k -> KVStore k v f (Maybe v) 
UpdateKV :: k -> Maybe v -> KVStore k v f () 

Instances

Instances details
FirstOrder (KVStore k v) Source # 
Instance details

Defined in Data.Effect.KVStore

HFunctor (KVStore k v) Source # 
Instance details

Defined in Data.Effect.KVStore

Methods

hfmap :: (forall x. f x -> g x) -> KVStore k v f a -> KVStore k v g a #

type LabelOf (KVStore k v) Source # 
Instance details

Defined in Data.Effect.KVStore

type OrderOf (KVStore k v) Source # 
Instance details

Defined in Data.Effect.KVStore

type OrderOf (KVStore k v) = 'FirstOrder

updateKV'_ :: forall (k :: Type) (v :: Type) f es ff c. (Free c ff, f ~ Eff ff es, In (KVStore k v) es) => k -> Maybe v -> f () Source #

updateKV'' :: forall tag (k :: Type) (v :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (Tagged tag (KVStore k v)) es) => k -> Maybe v -> f () Source #

updateKV' :: forall key (k :: Type) (v :: Type) f es ff c. (Free c ff, f ~ Eff ff es, Has key (KVStore k v) es) => k -> Maybe v -> f () Source #

updateKV :: forall (k :: Type) (v :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (KVStore k v) es) => k -> Maybe v -> f () Source #

lookupKV'_ :: forall (k :: Type) (v :: Type) f es ff c. (Free c ff, f ~ Eff ff es, In (KVStore k v) es) => k -> f (Maybe v) Source #

lookupKV'' :: forall tag (k :: Type) (v :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (Tagged tag (KVStore k v)) es) => k -> f (Maybe v) Source #

lookupKV' :: forall key (k :: Type) (v :: Type) f es ff c. (Free c ff, f ~ Eff ff es, Has key (KVStore k v) es) => k -> f (Maybe v) Source #

lookupKV :: forall (k :: Type) (v :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (KVStore k v) es) => k -> f (Maybe v) Source #

lookupOrThrowKV :: forall k v e es ff c. (KVStore k v :> es, Throw e :> es, Monad (Eff ff es), Free c ff) => (k -> e) -> k -> Eff ff es v Source #

existsKV :: forall v k es ff c. (KVStore k v :> es, Functor (Eff ff es), Free c ff) => k -> Eff ff es Bool Source #

writeKV :: forall k v es ff c. (KVStore k v :> es, Free c ff) => k -> v -> Eff ff es () Source #

deleteKV :: forall v k es ff c. (KVStore k v :> es, Free c ff) => k -> Eff ff es () Source #

modifyKV :: forall k v es ff c. (KVStore k v :> es, Monad (Eff ff es), Free c ff) => v -> (v -> v) -> k -> Eff ff es () Source #

runKVStoreIORef :: forall k v a es ff c. (Ord k, Emb IO :> es, forall es'. Monad (Eff ff es'), Free c ff) => Map k v -> Eff ff (KVStore k v ': es) a -> Eff ff es (Map k v, a) Source #

runKVStoreAsState :: forall k v es ff c. (Ord k, State (Map k v) :> es, Monad (Eff ff es), Free c ff) => Eff ff (KVStore k v ': es) ~> Eff ff es Source #