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

Test.Credit.Deque.SimpleCat

Synopsis

Documentation

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

"simple"

Constructors

Shallow (BDeque a m) 
Deep 

Fields

Instances

Instances details
BoundedDeque SimpleCat Source # 
Instance details

Defined in Test.Credit.Deque.SimpleCat

Methods

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

Deque SimpleCat Source # 
Instance details

Defined in Test.Credit.Deque.SimpleCat

Methods

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

cons :: MonadInherit m => a -> SimpleCat a m -> m (SimpleCat a m) Source #

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

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

unsnoc :: MonadInherit m => SimpleCat a m -> m (Maybe (SimpleCat a m, a)) Source #

concat :: MonadInherit m => SimpleCat a m -> SimpleCat a m -> m (SimpleCat a m) Source #

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

Defined in Test.Credit.Deque.SimpleCat

Methods

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

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

Defined in Test.Credit.Deque.SimpleCat

dangerous :: forall a (m :: Type -> Type). BDeque a m -> Bool Source #

danger :: forall a (m :: Type -> Type). BDeque a m -> Credit Source #

deep :: MonadInherit m => BDeque a m -> Thunk m (Lazy m) (SimpleCat (BDeque a m) m) -> BDeque a m -> m (SimpleCat a m) Source #

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

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

Constructors

Small (Maybe a) 
Big (BDeque a m) 

tooSmall :: MonadInherit m => BDeque a m -> m (DequeIs a m) Source #

dappendL :: MonadInherit m => Maybe a -> BDeque a m -> m (BDeque a m) Source #

dappendR :: MonadInherit m => BDeque a m -> Maybe a -> m (BDeque a m) Source #

uncons' :: MonadInherit m => SimpleCat a m -> m (Maybe (a, Thunk m (Lazy m) (SimpleCat a m))) Source #

unsnoc' :: MonadInherit m => SimpleCat a m -> m (Maybe (Thunk m (Lazy m) (SimpleCat a m), a)) Source #

concat' :: MonadInherit m => SimpleCat a m -> SimpleCat a m -> m (SimpleCat a m) Source #