creditmonad-1.0.0: Reasoning about amortized time complexity
Safe HaskellNone
LanguageGHC2021

Test.Credit.Queue.Base

Documentation

data QueueOp a Source #

Constructors

Snoc a 
Uncons 

Instances

Instances details
Arbitrary a => Arbitrary (QueueOp a) Source # 
Instance details

Defined in Test.Credit.Queue.Base

Methods

arbitrary :: Gen (QueueOp a) #

shrink :: QueueOp a -> [QueueOp a] #

Show a => Show (QueueOp a) Source # 
Instance details

Defined in Test.Credit.Queue.Base

Methods

showsPrec :: Int -> QueueOp a -> ShowS #

show :: QueueOp a -> String #

showList :: [QueueOp a] -> ShowS #

Eq a => Eq (QueueOp a) Source # 
Instance details

Defined in Test.Credit.Queue.Base

Methods

(==) :: QueueOp a -> QueueOp a -> Bool #

(/=) :: QueueOp a -> QueueOp a -> Bool #

Ord a => Ord (QueueOp a) Source # 
Instance details

Defined in Test.Credit.Queue.Base

Methods

compare :: QueueOp a -> QueueOp a -> Ordering #

(<) :: QueueOp a -> QueueOp a -> Bool #

(<=) :: QueueOp a -> QueueOp a -> Bool #

(>) :: QueueOp a -> QueueOp a -> Bool #

(>=) :: QueueOp a -> QueueOp a -> Bool #

max :: QueueOp a -> QueueOp a -> QueueOp a #

min :: QueueOp a -> QueueOp a -> QueueOp a #

(Arbitrary a, BoundedQueue q, Show a) => DataStructure (Q q a) (QueueOp a) Source # 
Instance details

Defined in Test.Credit.Queue.Base

Methods

create :: forall (m :: Type -> Type). MonadInherit m => Q q a m Source #

action :: MonadInherit m => Q q a m -> QueueOp a -> (Credit, m (Q q a m)) Source #

class Queue (q :: Type -> (Type -> Type) -> Type) where Source #

Methods

empty :: MonadInherit m => m (q a m) Source #

snoc :: MonadInherit m => q a m -> a -> m (q a m) Source #

uncons :: MonadInherit m => q a m -> m (Maybe (a, q a m)) Source #

Instances

Instances details
Queue BQueue Source # 
Instance details

Defined in Test.Credit.Queue.Bankers

Methods

empty :: MonadInherit m => m (BQueue a m) Source #

snoc :: MonadInherit m => BQueue a m -> a -> m (BQueue a m) Source #

uncons :: MonadInherit m => BQueue a m -> m (Maybe (a, BQueue a m)) Source #

Queue Bootstrapped Source # 
Instance details

Defined in Test.Credit.Queue.Bootstrapped

Methods

empty :: MonadInherit m => m (Bootstrapped a m) Source #

snoc :: MonadInherit m => Bootstrapped a m -> a -> m (Bootstrapped a m) Source #

uncons :: MonadInherit m => Bootstrapped a m -> m (Maybe (a, Bootstrapped a m)) Source #

Queue Implicit Source # 
Instance details

Defined in Test.Credit.Queue.Implicit

Methods

empty :: MonadInherit m => m (Implicit a m) Source #

snoc :: MonadInherit m => Implicit a m -> a -> m (Implicit a m) Source #

uncons :: MonadInherit m => Implicit a m -> m (Maybe (a, Implicit a m)) Source #

Queue Physicists Source # 
Instance details

Defined in Test.Credit.Queue.Physicists

Methods

empty :: MonadInherit m => m (Physicists a m) Source #

snoc :: MonadInherit m => Physicists a m -> a -> m (Physicists a m) Source #

uncons :: MonadInherit m => Physicists a m -> m (Maybe (a, Physicists a m)) Source #

Queue RQueue Source # 
Instance details

Defined in Test.Credit.Queue.Realtime

Methods

empty :: MonadInherit m => m (RQueue a m) Source #

snoc :: MonadInherit m => RQueue a m -> a -> m (RQueue a m) Source #

uncons :: MonadInherit m => RQueue a m -> m (Maybe (a, RQueue a m)) Source #

Queue (Batched :: Type -> (Type -> Type) -> Type) Source # 
Instance details

Defined in Test.Credit.Queue.Batched

Methods

empty :: MonadInherit m => m (Batched a m) Source #

snoc :: MonadInherit m => Batched a m -> a -> m (Batched a m) Source #

uncons :: MonadInherit m => Batched a m -> m (Maybe (a, Batched a m)) Source #

class Queue q => BoundedQueue (q :: Type -> (Type -> Type) -> Type) where Source #

Methods

qcost :: Size -> QueueOp a -> Credit Source #

Instances

Instances details
BoundedQueue BQueue Source # 
Instance details

Defined in Test.Credit.Queue.Bankers

Methods

qcost :: Size -> QueueOp a -> Credit Source #

BoundedQueue Bootstrapped Source # 
Instance details

Defined in Test.Credit.Queue.Bootstrapped

Methods

qcost :: Size -> QueueOp a -> Credit Source #

BoundedQueue Implicit Source # 
Instance details

Defined in Test.Credit.Queue.Implicit

Methods

qcost :: Size -> QueueOp a -> Credit Source #

BoundedQueue Physicists Source # 
Instance details

Defined in Test.Credit.Queue.Physicists

Methods

qcost :: Size -> QueueOp a -> Credit Source #

BoundedQueue RQueue Source # 
Instance details

Defined in Test.Credit.Queue.Realtime

Methods

qcost :: Size -> QueueOp a -> Credit Source #

BoundedQueue (Batched :: Type -> (Type -> Type) -> Type) Source # 
Instance details

Defined in Test.Credit.Queue.Batched

Methods

qcost :: Size -> QueueOp a -> Credit Source #

data Q (q :: Type -> k -> Type) a (m :: k) Source #

Constructors

E 
Q Size (q (PrettyCell a) m) 

Instances

Instances details
MemoryStructure (q (PrettyCell a)) => MemoryStructure (Q q a) Source # 
Instance details

Defined in Test.Credit.Queue.Base

Methods

prettyStructure :: MonadMemory m => Q q a m -> m Memory Source #

(Arbitrary a, BoundedQueue q, Show a) => DataStructure (Q q a) (QueueOp a) Source # 
Instance details

Defined in Test.Credit.Queue.Base

Methods

create :: forall (m :: Type -> Type). MonadInherit m => Q q a m Source #

action :: MonadInherit m => Q q a m -> QueueOp a -> (Credit, m (Q q a m)) Source #

act :: (MonadInherit m, Queue q) => Size -> q (PrettyCell a) m -> QueueOp a -> m (Q q a m) Source #