EdisonCore-1.3.2.1: A library of efficient, purely-functional data structures (Core Implementations)

CopyrightCopyright (c) 1999 2008 Chris Okasaki
LicenseMIT; see COPYRIGHT file for terms and conditions
Maintainerrobdockins AT fastmail DOT fm
Stabilitystable
PortabilityGHC, Hugs (MPTC and FD)
Safe HaskellNone
LanguageHaskell2010

Data.Edison.Coll.SplayHeap

Contents

Description

Splay heaps.

If minElem is called frequently, then SplayHeap should be used in conjunction with Data.Edison.Coll.MinHeap.

References:

  • Chris Okasaki. Purely Functional Data Structures. 1998. Section 5.4.
Synopsis

Type of splay heaps

data Heap a Source #

Instances
Ord a => Eq (Heap a) Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

(==) :: Heap a -> Heap a -> Bool

(/=) :: Heap a -> Heap a -> Bool

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

Defined in Data.Edison.Coll.SplayHeap

Methods

compare :: Heap a -> Heap a -> Ordering

(<) :: Heap a -> Heap a -> Bool

(<=) :: Heap a -> Heap a -> Bool

(>) :: Heap a -> Heap a -> Bool

(>=) :: Heap a -> Heap a -> Bool

max :: Heap a -> Heap a -> Heap a

min :: Heap a -> Heap a -> Heap a

(Ord a, Read a) => Read (Heap a) Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

readsPrec :: Int -> ReadS (Heap a)

readList :: ReadS [Heap a]

readPrec :: ReadPrec (Heap a)

readListPrec :: ReadPrec [Heap a]

(Ord a, Show a) => Show (Heap a) Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

showsPrec :: Int -> Heap a -> ShowS

show :: Heap a -> String

showList :: [Heap a] -> ShowS

Ord a => Semigroup (Heap a) Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

(<>) :: Heap a -> Heap a -> Heap a

sconcat :: NonEmpty (Heap a) -> Heap a

stimes :: Integral b => b -> Heap a -> Heap a

Ord a => Monoid (Heap a) Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

mempty :: Heap a

mappend :: Heap a -> Heap a -> Heap a

mconcat :: [Heap a] -> Heap a

(Ord a, Arbitrary a) => Arbitrary (Heap a) Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

arbitrary :: Gen (Heap a)

shrink :: Heap a -> [Heap a]

(Ord a, CoArbitrary a) => CoArbitrary (Heap a) Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

coarbitrary :: Heap a -> Gen b -> Gen b

Ord a => CollX (Heap a) a Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

singleton :: a -> Heap a Source #

fromSeq :: Sequence seq => seq a -> Heap a Source #

unionSeq :: Sequence seq => seq (Heap a) -> Heap a Source #

insert :: a -> Heap a -> Heap a Source #

insertSeq :: Sequence seq => seq a -> Heap a -> Heap a Source #

delete :: a -> Heap a -> Heap a Source #

deleteAll :: a -> Heap a -> Heap a Source #

deleteSeq :: Sequence seq => seq a -> Heap a -> Heap a Source #

null :: Heap a -> Bool Source #

size :: Heap a -> Int Source #

member :: a -> Heap a -> Bool Source #

count :: a -> Heap a -> Int Source #

strict :: Heap a -> Heap a Source #

structuralInvariant :: Heap a -> Bool Source #

instanceName :: Heap a -> String Source #

Ord a => OrdCollX (Heap a) a Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

deleteMin :: Heap a -> Heap a Source #

deleteMax :: Heap a -> Heap a Source #

unsafeInsertMin :: a -> Heap a -> Heap a Source #

unsafeInsertMax :: a -> Heap a -> Heap a Source #

unsafeFromOrdSeq :: Sequence seq => seq a -> Heap a Source #

unsafeAppend :: Heap a -> Heap a -> Heap a Source #

filterLT :: a -> Heap a -> Heap a Source #

filterLE :: a -> Heap a -> Heap a Source #

filterGT :: a -> Heap a -> Heap a Source #

filterGE :: a -> Heap a -> Heap a Source #

partitionLT_GE :: a -> Heap a -> (Heap a, Heap a) Source #

partitionLE_GT :: a -> Heap a -> (Heap a, Heap a) Source #

partitionLT_GT :: a -> Heap a -> (Heap a, Heap a) Source #

Ord a => Coll (Heap a) a Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

toSeq :: Sequence seq => Heap a -> seq a Source #

lookup :: a -> Heap a -> a Source #

lookupM :: Monad m => a -> Heap a -> m a Source #

lookupAll :: Sequence seq => a -> Heap a -> seq a Source #

lookupWithDefault :: a -> a -> Heap a -> a Source #

fold :: (a -> b -> b) -> b -> Heap a -> b Source #

fold' :: (a -> b -> b) -> b -> Heap a -> b Source #

fold1 :: (a -> a -> a) -> Heap a -> a Source #

fold1' :: (a -> a -> a) -> Heap a -> a Source #

filter :: (a -> Bool) -> Heap a -> Heap a Source #

partition :: (a -> Bool) -> Heap a -> (Heap a, Heap a) Source #

strictWith :: (a -> b) -> Heap a -> Heap a Source #

Ord a => OrdColl (Heap a) a Source # 
Instance details

Defined in Data.Edison.Coll.SplayHeap

Methods

minView :: Monad m => Heap a -> m (a, Heap a) Source #

minElem :: Heap a -> a Source #

maxView :: Monad m => Heap a -> m (a, Heap a) Source #

maxElem :: Heap a -> a Source #

foldr :: (a -> b -> b) -> b -> Heap a -> b Source #

foldr' :: (a -> b -> b) -> b -> Heap a -> b Source #

foldl :: (b -> a -> b) -> b -> Heap a -> b Source #

foldl' :: (b -> a -> b) -> b -> Heap a -> b Source #

foldr1 :: (a -> a -> a) -> Heap a -> a Source #

foldr1' :: (a -> a -> a) -> Heap a -> a Source #

foldl1 :: (a -> a -> a) -> Heap a -> a Source #

foldl1' :: (a -> a -> a) -> Heap a -> a Source #

toOrdSeq :: Sequence seq => Heap a -> seq a Source #

unsafeMapMonotonic :: (a -> a) -> Heap a -> Heap a Source #

CollX operations

fromSeq :: (Ord a, Sequence s) => s a -> Heap a Source #

insert :: Ord a => a -> Heap a -> Heap a Source #

insertSeq :: (Ord a, Sequence s) => s a -> Heap a -> Heap a Source #

union :: Ord a => Heap a -> Heap a -> Heap a Source #

unionSeq :: (Ord a, Sequence s) => s (Heap a) -> Heap a Source #

delete :: Ord a => a -> Heap a -> Heap a Source #

deleteAll :: Ord a => a -> Heap a -> Heap a Source #

deleteSeq :: (Ord a, Sequence s) => s a -> Heap a -> Heap a Source #

null :: Heap a -> Bool Source #

size :: Heap a -> Int Source #

member :: Ord a => a -> Heap a -> Bool Source #

count :: Ord a => a -> Heap a -> Int Source #

strict :: Heap a -> Heap a Source #

structuralInvariant :: Ord a => Heap a -> Bool Source #

Coll operations

toSeq :: (Ord a, Sequence s) => Heap a -> s a Source #

lookup :: Ord a => a -> Heap a -> a Source #

lookupM :: (Ord a, Monad m) => a -> Heap a -> m a Source #

lookupAll :: (Ord a, Sequence s) => a -> Heap a -> s a Source #

lookupWithDefault :: Ord a => a -> a -> Heap a -> a Source #

fold :: Ord a => (a -> b -> b) -> b -> Heap a -> b Source #

fold' :: Ord a => (a -> b -> b) -> b -> Heap a -> b Source #

fold1 :: Ord a => (a -> a -> a) -> Heap a -> a Source #

fold1' :: Ord a => (a -> a -> a) -> Heap a -> a Source #

filter :: Ord a => (a -> Bool) -> Heap a -> Heap a Source #

partition :: Ord a => (a -> Bool) -> Heap a -> (Heap a, Heap a) Source #

strictWith :: (a -> b) -> Heap a -> Heap a Source #

OrdCollX operations

deleteMin :: Ord a => Heap a -> Heap a Source #

deleteMax :: Ord a => Heap a -> Heap a Source #

unsafeInsertMin :: Ord a => a -> Heap a -> Heap a Source #

unsafeInsertMax :: Ord a => a -> Heap a -> Heap a Source #

unsafeFromOrdSeq :: (Ord a, Sequence s) => s a -> Heap a Source #

unsafeAppend :: Ord a => Heap a -> Heap a -> Heap a Source #

filterLT :: Ord a => a -> Heap a -> Heap a Source #

filterLE :: Ord a => a -> Heap a -> Heap a Source #

filterGT :: Ord a => a -> Heap a -> Heap a Source #

filterGE :: Ord a => a -> Heap a -> Heap a Source #

partitionLT_GE :: Ord a => a -> Heap a -> (Heap a, Heap a) Source #

partitionLE_GT :: Ord a => a -> Heap a -> (Heap a, Heap a) Source #

partitionLT_GT :: Ord a => a -> Heap a -> (Heap a, Heap a) Source #

OrdColl operations

minView :: (Ord a, Monad m) => Heap a -> m (a, Heap a) Source #

minElem :: Ord a => Heap a -> a Source #

maxView :: (Ord a, Monad m) => Heap a -> m (a, Heap a) Source #

maxElem :: Ord a => Heap a -> a Source #

foldr :: Ord a => (a -> b -> b) -> b -> Heap a -> b Source #

foldr' :: Ord a => (a -> b -> b) -> b -> Heap a -> b Source #

foldl :: Ord a => (b -> a -> b) -> b -> Heap a -> b Source #

foldl' :: Ord a => (b -> a -> b) -> b -> Heap a -> b Source #

foldr1 :: Ord a => (a -> a -> a) -> Heap a -> a Source #

foldr1' :: Ord a => (a -> a -> a) -> Heap a -> a Source #

foldl1 :: Ord a => (a -> a -> a) -> Heap a -> a Source #

foldl1' :: Ord a => (a -> a -> a) -> Heap a -> a Source #

toOrdSeq :: (Ord a, Sequence s) => Heap a -> s a Source #

unsafeMapMonotonic :: (a -> b) -> Heap a -> Heap b Source #

Documentation

moduleName :: String Source #