rebase-1.21.2: A more progressive alternative to the "base" package
Safe HaskellNone
LanguageHaskell2010

Rebase.Data.Vector.Mutable

Synopsis

Documentation

data RealWorld #

RealWorld is deeply magical. It is primitive, but it is not unlifted (hence ptrArg). We never manipulate values of type RealWorld; it's only used in the type system, to parameterise State#.

foldr :: PrimMonad m => (a -> b -> b) -> b -> MVector (PrimState m) a -> m b #

unsafeRead :: PrimMonad m => MVector (PrimState m) a -> Int -> m a #

unsafeWrite :: PrimMonad m => MVector (PrimState m) a -> Int -> a -> m () #

swap :: PrimMonad m => MVector (PrimState m) a -> Int -> Int -> m () #

foldl :: PrimMonad m => (b -> a -> b) -> b -> MVector (PrimState m) a -> m b #

readMaybe :: PrimMonad m => MVector (PrimState m) a -> Int -> m (Maybe a) #

length :: MVector s a -> Int #

foldl' :: PrimMonad m => (b -> a -> b) -> b -> MVector (PrimState m) a -> m b #

new :: PrimMonad m => Int -> m (MVector (PrimState m) a) #

mapM_ :: PrimMonad m => (a -> m b) -> MVector (PrimState m) a -> m () #

forM_ :: PrimMonad m => MVector (PrimState m) a -> (a -> m b) -> m () #

tail :: MVector s a -> MVector s a #

init :: MVector s a -> MVector s a #

null :: MVector s a -> Bool #

foldr' :: PrimMonad m => (a -> b -> b) -> b -> MVector (PrimState m) a -> m b #

replicate :: PrimMonad m => Int -> a -> m (MVector (PrimState m) a) #

take :: Int -> MVector s a -> MVector s a #

drop :: Int -> MVector s a -> MVector s a #

splitAt :: Int -> MVector s a -> (MVector s a, MVector s a) #

read :: PrimMonad m => MVector (PrimState m) a -> Int -> m a #

foldrM :: PrimMonad m => (a -> b -> m b) -> b -> MVector (PrimState m) a -> m b #

write :: PrimMonad m => MVector (PrimState m) a -> Int -> a -> m () #

foldM :: PrimMonad m => (b -> a -> m b) -> b -> MVector (PrimState m) a -> m b #

replicateM :: PrimMonad m => Int -> m a -> m (MVector (PrimState m) a) #

copy :: PrimMonad m => MVector (PrimState m) a -> MVector (PrimState m) a -> m () #

clear :: PrimMonad m => MVector (PrimState m) a -> m () #

unsafeTail :: MVector s a -> MVector s a #

unsafeInit :: MVector s a -> MVector s a #

unsafeTake :: Int -> MVector s a -> MVector s a #

unsafeDrop :: Int -> MVector s a -> MVector s a #

ifoldr :: PrimMonad m => (Int -> a -> b -> b) -> b -> MVector (PrimState m) a -> m b #

ifoldl :: PrimMonad m => (b -> Int -> a -> b) -> b -> MVector (PrimState m) a -> m b #

ifoldr' :: PrimMonad m => (Int -> a -> b -> b) -> b -> MVector (PrimState m) a -> m b #

ifoldl' :: PrimMonad m => (b -> Int -> a -> b) -> b -> MVector (PrimState m) a -> m b #

imapM_ :: PrimMonad m => (Int -> a -> m b) -> MVector (PrimState m) a -> m () #

iforM_ :: PrimMonad m => MVector (PrimState m) a -> (Int -> a -> m b) -> m () #

ifoldrM :: PrimMonad m => (Int -> a -> b -> m b) -> b -> MVector (PrimState m) a -> m b #

modify :: PrimMonad m => MVector (PrimState m) a -> (a -> a) -> Int -> m () #

class Monad m => PrimMonad (m :: Type -> Type) #

Class of monads which can perform primitive state-transformer actions.

Minimal complete definition

primitive

Associated Types

type PrimState (m :: Type -> Type) #

State token type.

Instances

Instances details
PrimMonad IO 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState IO 
Instance details

Defined in Control.Monad.Primitive

Methods

primitive :: (State# (PrimState IO) -> (# State# (PrimState IO), a #)) -> IO a #

PrimMonad (ST s) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ST s) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ST s) = s

Methods

primitive :: (State# (PrimState (ST s)) -> (# State# (PrimState (ST s)), a #)) -> ST s a #

PrimMonad (ST s) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ST s) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ST s) = s

Methods

primitive :: (State# (PrimState (ST s)) -> (# State# (PrimState (ST s)), a #)) -> ST s a #

PrimMonad m => PrimMonad (MaybeT m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (MaybeT m) 
Instance details

Defined in Control.Monad.Primitive

Methods

primitive :: (State# (PrimState (MaybeT m)) -> (# State# (PrimState (MaybeT m)), a #)) -> MaybeT m a #

(Monoid w, PrimMonad m) => PrimMonad (AccumT w m)

Since: primitive-0.6.3.0

Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (AccumT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (AccumT w m) = PrimState m

Methods

primitive :: (State# (PrimState (AccumT w m)) -> (# State# (PrimState (AccumT w m)), a #)) -> AccumT w m a #

PrimMonad m => PrimMonad (ExceptT e m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ExceptT e m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ExceptT e m) = PrimState m

Methods

primitive :: (State# (PrimState (ExceptT e m)) -> (# State# (PrimState (ExceptT e m)), a #)) -> ExceptT e m a #

PrimMonad m => PrimMonad (IdentityT m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (IdentityT m) 
Instance details

Defined in Control.Monad.Primitive

Methods

primitive :: (State# (PrimState (IdentityT m)) -> (# State# (PrimState (IdentityT m)), a #)) -> IdentityT m a #

PrimMonad m => PrimMonad (ReaderT r m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ReaderT r m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ReaderT r m) = PrimState m

Methods

primitive :: (State# (PrimState (ReaderT r m)) -> (# State# (PrimState (ReaderT r m)), a #)) -> ReaderT r m a #

PrimMonad m => PrimMonad (SelectT r m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (SelectT r m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (SelectT r m) = PrimState m

Methods

primitive :: (State# (PrimState (SelectT r m)) -> (# State# (PrimState (SelectT r m)), a #)) -> SelectT r m a #

PrimMonad m => PrimMonad (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (StateT s m) = PrimState m

Methods

primitive :: (State# (PrimState (StateT s m)) -> (# State# (PrimState (StateT s m)), a #)) -> StateT s m a #

PrimMonad m => PrimMonad (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (StateT s m) = PrimState m

Methods

primitive :: (State# (PrimState (StateT s m)) -> (# State# (PrimState (StateT s m)), a #)) -> StateT s m a #

(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (WriterT w m) = PrimState m

Methods

primitive :: (State# (PrimState (WriterT w m)) -> (# State# (PrimState (WriterT w m)), a #)) -> WriterT w m a #

(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (WriterT w m) = PrimState m

Methods

primitive :: (State# (PrimState (WriterT w m)) -> (# State# (PrimState (WriterT w m)), a #)) -> WriterT w m a #

(Monoid w, PrimMonad m) => PrimMonad (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (WriterT w m) = PrimState m

Methods

primitive :: (State# (PrimState (WriterT w m)) -> (# State# (PrimState (WriterT w m)), a #)) -> WriterT w m a #

PrimMonad m => PrimMonad (ContT r m)

Since: primitive-0.6.3.0

Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (ContT r m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ContT r m) = PrimState m

Methods

primitive :: (State# (PrimState (ContT r m)) -> (# State# (PrimState (ContT r m)), a #)) -> ContT r m a #

(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (RWST r w s m) = PrimState m

Methods

primitive :: (State# (PrimState (RWST r w s m)) -> (# State# (PrimState (RWST r w s m)), a #)) -> RWST r w s m a #

(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (RWST r w s m) = PrimState m

Methods

primitive :: (State# (PrimState (RWST r w s m)) -> (# State# (PrimState (RWST r w s m)), a #)) -> RWST r w s m a #

(Monoid w, PrimMonad m) => PrimMonad (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

Associated Types

type PrimState (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (RWST r w s m) = PrimState m

Methods

primitive :: (State# (PrimState (RWST r w s m)) -> (# State# (PrimState (RWST r w s m)), a #)) -> RWST r w s m a #

type family PrimState (m :: Type -> Type) #

State token type.

Instances

Instances details
type PrimState IO 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ST s) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ST s) = s
type PrimState (ST s) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ST s) = s
type PrimState (MaybeT m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (AccumT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (AccumT w m) = PrimState m
type PrimState (ExceptT e m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ExceptT e m) = PrimState m
type PrimState (IdentityT m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ReaderT r m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ReaderT r m) = PrimState m
type PrimState (SelectT r m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (SelectT r m) = PrimState m
type PrimState (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (StateT s m) = PrimState m
type PrimState (StateT s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (StateT s m) = PrimState m
type PrimState (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (WriterT w m) = PrimState m
type PrimState (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (WriterT w m) = PrimState m
type PrimState (WriterT w m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (WriterT w m) = PrimState m
type PrimState (ContT r m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (ContT r m) = PrimState m
type PrimState (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (RWST r w s m) = PrimState m
type PrimState (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (RWST r w s m) = PrimState m
type PrimState (RWST r w s m) 
Instance details

Defined in Control.Monad.Primitive

type PrimState (RWST r w s m) = PrimState m

modifyM :: PrimMonad m => MVector (PrimState m) a -> (a -> m a) -> Int -> m () #

clone :: PrimMonad m => MVector (PrimState m) a -> m (MVector (PrimState m) a) #

generate :: PrimMonad m => Int -> (Int -> a) -> m (MVector (PrimState m) a) #

generateM :: PrimMonad m => Int -> (Int -> m a) -> m (MVector (PrimState m) a) #

slice :: Int -> Int -> MVector s a -> MVector s a #

foldM' :: PrimMonad m => (b -> a -> m b) -> b -> MVector (PrimState m) a -> m b #

set :: PrimMonad m => MVector (PrimState m) a -> a -> m () #

ifoldM :: PrimMonad m => (b -> Int -> a -> m b) -> b -> MVector (PrimState m) a -> m b #

ifoldM' :: PrimMonad m => (b -> Int -> a -> m b) -> b -> MVector (PrimState m) a -> m b #

unsafeCopy :: PrimMonad m => MVector (PrimState m) a -> MVector (PrimState m) a -> m () #

unsafeSlice :: Int -> Int -> MVector s a -> MVector s a #

data MVector s a #

Constructors

MVector !Int !Int !(MutableArray s a) 

Instances

Instances details
MVector MVector a 
Instance details

Defined in Data.Vector.Mutable

Methods

basicLength :: MVector s a -> Int #

basicUnsafeSlice :: Int -> Int -> MVector s a -> MVector s a #

basicOverlaps :: MVector s a -> MVector s a -> Bool #

basicUnsafeNew :: Int -> ST s (MVector s a) #

basicInitialize :: MVector s a -> ST s () #

basicUnsafeReplicate :: Int -> a -> ST s (MVector s a) #

basicUnsafeRead :: MVector s a -> Int -> ST s a #

basicUnsafeWrite :: MVector s a -> Int -> a -> ST s () #

basicClear :: MVector s a -> ST s () #

basicSet :: MVector s a -> a -> ST s () #

basicUnsafeCopy :: MVector s a -> MVector s a -> ST s () #

basicUnsafeMove :: MVector s a -> MVector s a -> ST s () #

basicUnsafeGrow :: MVector s a -> Int -> ST s (MVector s a) #

unsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) a) #

exchange :: PrimMonad m => MVector (PrimState m) a -> Int -> a -> m a #

foldrM' :: PrimMonad m => (a -> b -> m b) -> b -> MVector (PrimState m) a -> m b #

grow :: PrimMonad m => MVector (PrimState m) a -> Int -> m (MVector (PrimState m) a) #

ifoldrM' :: PrimMonad m => (Int -> a -> b -> m b) -> b -> MVector (PrimState m) a -> m b #

move :: PrimMonad m => MVector (PrimState m) a -> MVector (PrimState m) a -> m () #

nextPermutationBy :: PrimMonad m => (e -> e -> Ordering) -> MVector (PrimState m) e -> m Bool #

overlaps :: MVector s a -> MVector s a -> Bool #

prevPermutationBy :: PrimMonad m => (e -> e -> Ordering) -> MVector (PrimState m) e -> m Bool #

unsafeExchange :: PrimMonad m => MVector (PrimState m) a -> Int -> a -> m a #

unsafeGrow :: PrimMonad m => MVector (PrimState m) a -> Int -> m (MVector (PrimState m) a) #

unsafeModify :: PrimMonad m => MVector (PrimState m) a -> (a -> a) -> Int -> m () #

unsafeModifyM :: PrimMonad m => MVector (PrimState m) a -> (a -> m a) -> Int -> m () #

unsafeMove :: PrimMonad m => MVector (PrimState m) a -> MVector (PrimState m) a -> m () #

unsafeSwap :: PrimMonad m => MVector (PrimState m) a -> Int -> Int -> m () #

type STVector s = MVector s #