Safe Haskell | None |
---|---|
Language | Haskell2010 |
Indexable FIFO queues
- data Queue a = Queue {}
- initQueueFromBuffer :: forall m a. (Syntax a, MonadComp m) => Arr a -> m (Queue a)
- initQueue :: (Manifestable m vec a, Finite vec, Syntax a, MonadComp m) => vec -> m (Queue a)
- newQueue :: (Syntax a, MonadComp m) => Data Length -> m (Queue a)
- initQueueFromBuffer2 :: forall m a. (Syntax a, MonadComp m) => Data Length -> Arr a -> m (Queue a)
- initQueue2 :: (Pushy m vec a, Finite vec, Syntax a, MonadComp m) => vec -> m (Queue a)
- newQueue2 :: (Syntax a, MonadComp m) => Data Length -> m (Queue a)
Documentation
Indexable FIFO queue
initQueueFromBuffer :: forall m a. (Syntax a, MonadComp m) => Arr a -> m (Queue a) Source #
Create a new cyclic queue using an existing array as buffer. The length of the array determines the queue size.
:: (Manifestable m vec a, Finite vec, Syntax a, MonadComp m) | |
=> vec | Initial content (also determines the queue size) |
-> m (Queue a) |
Create a new cyclic queue initialized by the given vector (which also determines the size)
newQueue :: (Syntax a, MonadComp m) => Data Length -> m (Queue a) Source #
Create a new cyclic queue of the given length without initialization