rewindable-index-1.1.0.0: Indexers that can rewind the state to a previous version.
Safe HaskellNone
LanguageHaskell2010

RewindableIndex.Index.VSplit

Synopsis

Documentation

data SplitIndex m h v e n q r Source #

Constructors

SplitIndex 

Fields

new :: Monad m => MVector (Mutable v) e => (SplitIndex m h v e n q r -> q -> [e] -> m r) -> (SplitIndex m h v e n q r -> m ()) -> (SplitIndex m h v e n q r -> e -> m [n]) -> Int -> h -> Mutable v (PrimState m) e -> m (Maybe (SplitIndex m h v e n q r)) Source #

newBoxed :: Monad m => PrimMonad m => (BoxedIndex m h e n q r -> q -> [e] -> m r) -> (BoxedIndex m h e n q r -> m ()) -> (BoxedIndex m h e n q r -> e -> m [n]) -> Int -> Int -> h -> m (Maybe (BoxedIndex m h e n q r)) Source #

newUnboxed :: Monad m => PrimMonad m => MVector MVector e => (UnboxedIndex m h e n q r -> q -> [e] -> m r) -> (UnboxedIndex m h e n q r -> m ()) -> (UnboxedIndex m h e n q r -> e -> m [n]) -> Int -> Int -> h -> m (Maybe (UnboxedIndex m h e n q r)) Source #

insert :: forall m h v e n q r. Monad m => PrimMonad m => MVector (Mutable v) e => e -> SplitIndex m h v e n q r -> m (SplitIndex m h v e n q r) Source #

insertL :: PrimMonad m => MVector (Mutable v) e => [e] -> SplitIndex m h v e n q r -> m (SplitIndex m h v e n q r) Source #

size :: SplitIndex m h v e n q r -> Int Source #

rewind :: MVector (Mutable v) e => Int -> SplitIndex m h v e n q r -> Maybe (SplitIndex m h v e n q r) Source #

Accessors

handle :: forall m h v e n q r. Lens' (SplitIndex m h v e n q r) h Source #

storage :: forall m h v e n q r. Lens' (SplitIndex m h v e n q r) (Storage v m e) Source #

notifications :: forall m h v e n q r. Lens' (SplitIndex m h v e n q r) [n] Source #

store :: forall m h v e n q r. Lens' (SplitIndex m h v e n q r) (SplitIndex m h v e n q r -> m ()) Source #

query :: forall m h v e n q r. Lens' (SplitIndex m h v e n q r) (SplitIndex m h v e n q r -> q -> [e] -> m r) Source #

onInsert :: forall m h v e n q r. Lens' (SplitIndex m h v e n q r) (SplitIndex m h v e n q r -> e -> m [n]) Source #

Storage

data Storage v m e Source #

Constructors

Storage 

Fields

getBuffer :: forall v m e. MVector (Mutable v) e => PrimMonad m => Show e => Storage v m e -> m [e] Source #

getEvents :: forall v m e. MVector (Mutable v) e => PrimMonad m => Show e => Storage v m e -> m [e] Source #

k :: forall v m e. Lens' (Storage v m e) Int Source #