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

Test.Credit.Queue.Implicit

Documentation

data Digit a Source #

Constructors

Zero 
One a 
Two a a 

Instances

Instances details
MemoryCell m a => MemoryCell m (Digit a) Source # 
Instance details

Defined in Test.Credit.Queue.Implicit

Methods

prettyCell :: Digit a -> m Memory Source #

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

Defined in Test.Credit.Queue.Implicit

Methods

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

show :: Digit a -> String #

showList :: [Digit a] -> ShowS #

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

Defined in Test.Credit.Queue.Implicit

Methods

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

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

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

Defined in Test.Credit.Queue.Implicit

Methods

compare :: Digit a -> Digit a -> Ordering #

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

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

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

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

max :: Digit a -> Digit a -> Digit a #

min :: Digit a -> Digit a -> Digit a #

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

Constructors

Shallow (Digit a) 
Deep (Digit a) (Thunk m (ILazyCon m) (Implicit (a, a) m)) (Digit a) 

Instances

Instances details
BoundedQueue Implicit Source # 
Instance details

Defined in Test.Credit.Queue.Implicit

Methods

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

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

Defined in Test.Credit.Queue.Implicit

Methods

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

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

Defined in Test.Credit.Queue.Implicit

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

Constructors

IPure :: forall a (m :: Type -> Type). a -> ILazyCon m a 
ISnoc :: forall (m :: Type -> Type) a1. Thunk m (ILazyCon m) (Implicit a1 m) -> a1 -> ILazyCon m (Implicit a1 m) 
ITail :: forall a1 (m :: Type -> Type). Implicit a1 m -> ILazyCon m (Implicit a1 m) 

Instances

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

Defined in Test.Credit.Queue.Implicit

Methods

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

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

Defined in Test.Credit.Queue.Implicit

Methods

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

isEmpty :: forall a (m :: Type -> Type). Implicit a m -> Bool Source #

head :: MonadCredit m => Implicit a m -> m a Source #

deep :: MonadCredit m => Digit a -> Thunk m (ILazyCon m) (Implicit (a, a) m) -> Digit a -> m (Implicit a m) Source #

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

tail :: MonadCredit m => Implicit a m -> m (Implicit a m) Source #

showThunk :: (MonadLazy m, Show a) => Thunk m (ILazyCon m) (Implicit a m) -> m String Source #