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

Test.Credit.Heap.Pairing

Synopsis

Documentation

data PairingHeap a (m :: k) Source #

Constructors

Nil 
Heap a (PairingHeap a m) (PairingHeap a m) 

Instances

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

Defined in Test.Credit.Heap.Pairing

Methods

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

data Pairing a (m :: k) Source #

At the root, the right child is Empty.

Constructors

Empty 
Root a (PairingHeap a m) 

Instances

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

Defined in Test.Credit.Heap.Pairing

Methods

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

BoundedHeap (Pairing :: Type -> (Type -> Type) -> Type) Source # 
Instance details

Defined in Test.Credit.Heap.Pairing

Methods

hcost :: Size -> HeapOp a -> Credit Source #

Heap (Pairing :: Type -> (Type -> Type) -> Type) Source # 
Instance details

Defined in Test.Credit.Heap.Pairing

Methods

empty :: MonadCredit m => m (Pairing a m) Source #

insert :: (MonadCredit m, Ord a) => a -> Pairing a m -> m (Pairing a m) Source #

merge :: (MonadCredit m, Ord a) => Pairing a m -> Pairing a m -> m (Pairing a m) Source #

splitMin :: (MonadCredit m, Ord a) => Pairing a m -> m (Maybe (a, Pairing a m)) Source #

Pretty a => MemoryStructure (Pairing (PrettyCell a) :: (Type -> Type) -> Type) Source # 
Instance details

Defined in Test.Credit.Heap.Pairing

link :: forall {k} a (m :: k). Ord a => Pairing a m -> Pairing a m -> Pairing a m Source #

mergePairs :: (MonadCredit m, Ord a) => PairingHeap a m -> m (Pairing a m) Source #