disco-0.1.6: Functional programming language for teaching discrete math.
Copyrightdisco team and contributors
LicenseBSD-3-Clause
Maintainerbyorgey@gmail.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

Disco.Effects.Store

Description

Polysemy effect for a memory store with integer keys.

Synopsis

Documentation

data Store v m a where Source #

Constructors

ClearStore :: Store v m () 
New :: v -> Store v m Int 
LookupStore :: Int -> Store v m (Maybe v) 
InsertStore :: Int -> v -> Store v m () 
MapStore :: (v -> v) -> Store v m () 
AssocsStore :: Store v m [(Int, v)] 
KeepKeys :: IntSet -> Store v m () 

keepKeys :: forall v r. Member (Store v) r => IntSet -> Sem r () Source #

assocsStore :: forall v r. Member (Store v) r => Sem r [(Int, v)] Source #

mapStore :: forall v r. Member (Store v) r => (v -> v) -> Sem r () Source #

insertStore :: forall v r. Member (Store v) r => Int -> v -> Sem r () Source #

lookupStore :: forall v r. Member (Store v) r => Int -> Sem r (Maybe v) Source #

new :: forall v r. Member (Store v) r => v -> Sem r Int Source #

clearStore :: forall v r. Member (Store v) r => Sem r () Source #

runStore :: forall v r a. Sem (Store v ': r) a -> Sem r a Source #

Dispatch a store effect.