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

Test.Credit.Queue.Physicists

Documentation

app :: MonadCredit m => [a] -> [a] -> m [a] Source #

rev :: MonadCredit m => [a] -> [a] -> m [a] Source #

data PLazyCon (m :: Type -> Type) a where Source #

Constructors

Empty :: forall (m :: Type -> Type) a1. PLazyCon m [a1] 
AppRev :: forall a1 (m :: Type -> Type). [a1] -> [a1] -> PLazyCon m [a1] 
Tail :: forall (m :: Type -> Type) a1. Thunk m (PLazyCon m) [a1] -> PLazyCon m [a1] 

Instances

Instances details
MonadCredit m => HasStep (PLazyCon m :: Type -> Type) (m :: Type -> Type) Source # 
Instance details

Defined in Test.Credit.Queue.Physicists

Methods

step :: PLazyCon m a -> m a Source #

(MonadMemory m, MemoryCell m a) => MemoryCell m (PLazyCon m a) Source # 
Instance details

Defined in Test.Credit.Queue.Physicists

Methods

prettyCell :: PLazyCon m a -> m Memory Source #

type PThunk (m :: Type -> Type) = Thunk m (PLazyCon m) Source #

data Physicists a (m :: Type -> Type) Source #

Constructors

Queue [a] Int (PThunk m [a]) (PThunk m [a]) Int [a] 

Instances

Instances details
BoundedQueue Physicists Source # 
Instance details

Defined in Test.Credit.Queue.Physicists

Methods

qcost :: Size -> QueueOp a -> Credit 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 #

(MonadMemory m, MemoryCell m a) => MemoryCell m (Physicists a m) Source # 
Instance details

Defined in Test.Credit.Queue.Physicists

Methods

prettyCell :: Physicists a m -> m Memory Source #

Pretty a => MemoryStructure (Physicists (PrettyCell a)) Source # 
Instance details

Defined in Test.Credit.Queue.Physicists