Safe Haskell | None |
---|---|
Language | GHC2021 |
Test.Credit.Heap.Scheduled
Synopsis
- data Stream (m :: Type -> Type) a
- indirect :: MonadCredit m => m (Stream m a) -> m (Stream m a)
- credit :: MonadCredit m => Credit -> Stream m a -> m ()
- smatch :: MonadCredit m => Stream m a -> m b -> (a -> Stream m a -> m b) -> m b
- data Tree a = Node a [Tree a]
- data Digit a
- type Schedule (m :: Type -> Type) a = [Stream m (Digit a)]
- data Scheduled a (m :: Type -> Type) = Scheduled (Stream m (Digit a)) (Schedule m a)
- link :: Ord a => Tree a -> Tree a -> Tree a
- insTree :: (MonadCredit m, Ord a) => Tree a -> Stream m (Digit a) -> m (Stream m (Digit a))
- mrg :: (MonadCredit m, Ord a) => Stream m (Digit a) -> Stream m (Digit a) -> m (Stream m (Digit a))
- normalize :: (MonadCredit m, Ord a) => Stream m (Digit a) -> m (Stream m (Digit a))
- exec :: MonadCredit m => Schedule m a -> m (Schedule m a)
- removeMinTree :: (MonadCredit m, Ord a) => Stream m (Digit a) -> m (Tree a, Stream m (Digit a))
- revOneStream :: MonadCredit m => [Tree a] -> Stream m (Digit a) -> m (Stream m (Digit a))
Documentation
data Stream (m :: Type -> Type) a Source #
Instances
(MonadMemory m, MemoryCell m a) => MemoryCell m (Stream m a) Source # | |
Defined in Test.Credit.Heap.Scheduled Methods prettyCell :: Stream m a -> m Memory Source # |
Arguments
:: MonadCredit m | |
=> Stream m a | Scrutinee |
-> m b | Nil case |
-> (a -> Stream m a -> m b) | Cons case |
-> m b |
Smart destructor for streams, consuming one credit
data Scheduled a (m :: Type -> Type) Source #
Instances
BoundedHeap Scheduled Source # | |
Heap Scheduled Source # | |
Defined in Test.Credit.Heap.Scheduled Methods empty :: MonadCredit m => m (Scheduled a m) Source # insert :: (MonadCredit m, Ord a) => a -> Scheduled a m -> m (Scheduled a m) Source # merge :: (MonadCredit m, Ord a) => Scheduled a m -> Scheduled a m -> m (Scheduled a m) Source # splitMin :: (MonadCredit m, Ord a) => Scheduled a m -> m (Maybe (a, Scheduled a m)) Source # | |
(MonadMemory m, MemoryCell m a) => MemoryCell m (Scheduled a m) Source # | |
Defined in Test.Credit.Heap.Scheduled Methods prettyCell :: Scheduled a m -> m Memory Source # | |
Pretty a => MemoryStructure (Scheduled (PrettyCell a)) Source # | |
Defined in Test.Credit.Heap.Scheduled Methods prettyStructure :: MonadMemory m => Scheduled (PrettyCell a) m -> m Memory Source # |
insTree :: (MonadCredit m, Ord a) => Tree a -> Stream m (Digit a) -> m (Stream m (Digit a)) Source #
mrg :: (MonadCredit m, Ord a) => Stream m (Digit a) -> Stream m (Digit a) -> m (Stream m (Digit a)) Source #
removeMinTree :: (MonadCredit m, Ord a) => Stream m (Digit a) -> m (Tree a, Stream m (Digit a)) Source #
revOneStream :: MonadCredit m => [Tree a] -> Stream m (Digit a) -> m (Stream m (Digit a)) Source #