 EdisonCore1.2.1.2: A library of efficent, purelyfunctional data structures (Core Implementations)  Source code  Contents  Index 

Data.Edison.Assoc.TernaryTrie  Portability  GHC, Hugs (MPTC and FD)  Stability  stable  Maintainer  robdockins AT fastmail DOT fm 





Description 
Finite maps implemented as ternary search tries


Synopsis 

data FM k a   empty :: Ord k => FM k a   singleton :: Ord k => [k] > a > FM k a   fromSeq :: (Ord k, Sequence seq) => seq ([k], a) > FM k a   insert :: Ord k => [k] > a > FM k a > FM k a   insertSeq :: (Ord k, Sequence seq) => seq ([k], a) > FM k a > FM k a   union :: Ord k => FM k a > FM k a > FM k a   unionSeq :: (Ord k, Sequence seq) => seq (FM k a) > FM k a   delete :: Ord k => [k] > FM k a > FM k a   deleteAll :: Ord k => [k] > FM k a > FM k a   deleteSeq :: (Ord k, Sequence seq) => seq [k] > FM k a > FM k a   null :: Ord k => FM k a > Bool   size :: Ord k => FM k a > Int   member :: Ord k => [k] > FM k a > Bool   count :: Ord k => [k] > FM k a > Int   lookup :: Ord k => [k] > FM k a > a   lookupM :: (Ord k, Monad rm) => [k] > FM k a > rm a   lookupAll :: (Ord k, Sequence seq) => [k] > FM k a > seq a   lookupAndDelete :: Ord k => [k] > FM k a > (a, FM k a)   lookupAndDeleteM :: (Ord k, Monad rm) => [k] > FM k a > rm (a, FM k a)   lookupAndDeleteAll :: (Ord k, Sequence seq) => [k] > FM k a > (seq a, FM k a)   lookupWithDefault :: Ord k => a > [k] > FM k a > a   adjust :: Ord k => (a > a) > [k] > FM k a > FM k a   adjustAll :: Ord k => (a > a) > [k] > FM k a > FM k a   adjustOrInsert :: Ord k => (a > a) > a > [k] > FM k a > FM k a   adjustAllOrInsert :: Ord k => (a > a) > a > [k] > FM k a > FM k a   adjustOrDelete :: Ord k => (a > Maybe a) > [k] > FM k a > FM k a   adjustOrDeleteAll :: Ord k => (a > Maybe a) > [k] > FM k a > FM k a   strict :: FM k a > FM k a   strictWith :: (a > b) > FM k a > FM k a   map :: Ord k => (a > b) > FM k a > FM k b   fold :: Ord k => (a > b > b) > b > FM k a > b   fold' :: Ord k => (a > b > b) > b > FM k a > b   fold1 :: Ord k => (a > a > a) > FM k a > a   fold1' :: Ord k => (a > a > a) > FM k a > a   filter :: Ord k => (a > Bool) > FM k a > FM k a   partition :: Ord k => (a > Bool) > FM k a > (FM k a, FM k a)   elements :: (Ord k, Sequence seq) => FM k a > seq a   structuralInvariant :: Ord k => FM k a > Bool   toSeq :: (Ord k, Sequence seq) => FM k a > seq ([k], a)   keys :: (Ord k, Sequence seq) => FM k a > seq [k]   mapWithKey :: Ord k => ([k] > a > b) > FM k a > FM k b   foldWithKey :: Ord k => ([k] > a > b > b) > b > FM k a > b   foldWithKey' :: Ord k => ([k] > a > b > b) > b > FM k a > b   filterWithKey :: Ord k => ([k] > a > Bool) > FM k a > FM k a   partitionWithKey :: Ord k => ([k] > a > Bool) > FM k a > (FM k a, FM k a)   fromSeqWith :: (Ord k, Sequence seq) => (a > a > a) > seq ([k], a) > FM k a   fromSeqWithKey :: (Ord k, Sequence seq) => ([k] > a > a > a) > seq ([k], a) > FM k a   insertWith :: Ord k => (a > a > a) > [k] > a > FM k a > FM k a   insertWithKey :: Ord k => ([k] > a > a > a) > [k] > a > FM k a > FM k a   insertSeqWith :: (Ord k, Sequence seq) => (a > a > a) > seq ([k], a) > FM k a > FM k a   insertSeqWithKey :: (Ord k, Sequence seq) => ([k] > a > a > a) > seq ([k], a) > FM k a > FM k a   unionl :: Ord k => FM k a > FM k a > FM k a   unionr :: Ord k => FM k a > FM k a > FM k a   unionWith :: Ord k => (a > a > a) > FM k a > FM k a > FM k a   unionSeqWith :: (Ord k, Sequence seq) => (a > a > a) > seq (FM k a) > FM k a   intersectionWith :: Ord k => (a > b > c) > FM k a > FM k b > FM k c   difference :: Ord k => FM k a > FM k b > FM k a   properSubset :: Ord k => FM k a > FM k b > Bool   subset :: Ord k => FM k a > FM k b > Bool   properSubmapBy :: Ord k => (a > a > Bool) > FM k a > FM k a > Bool   submapBy :: Ord k => (a > a > Bool) > FM k a > FM k a > Bool   sameMapBy :: Ord k => (a > a > Bool) > FM k a > FM k a > Bool   properSubmap :: (Ord k, Eq a) => FM k a > FM k a > Bool   submap :: (Ord k, Eq a) => FM k a > FM k a > Bool   sameMap :: (Ord k, Eq a) => FM k a > FM k a > Bool   unionWithKey :: Ord k => ([k] > a > a > a) > FM k a > FM k a > FM k a   unionSeqWithKey :: (Ord k, Sequence seq) => ([k] > a > a > a) > seq (FM k a) > FM k a   intersectionWithKey :: Ord k => ([k] > a > b > c) > FM k a > FM k b > FM k c   minView :: Monad m => FM k a > m (a, FM k a)   minElem :: FM t1 t > t   deleteMin :: Ord k => FM k a > FM k a   unsafeInsertMin :: Ord k => [k] > a > FM k a > FM k a   maxView :: Monad m => FM k a > m (a, FM k a)   maxElem :: FM k a > a   deleteMax :: Ord k => FM k a > FM k a   unsafeInsertMax :: Ord k => [k] > a > FM k a > FM k a   foldr :: Ord k => (a > b > b) > b > FM k a > b   foldr' :: Ord k => (a > b > b) > b > FM k a > b   foldr1 :: Ord k => (a > a > a) > FM k a > a   foldr1' :: Ord k => (a > a > a) > FM k a > a   foldl :: (a > b > a) > a > FM t b > a   foldl' :: (a > b > a) > a > FM t b > a   foldl1 :: (b > b > b) > FM k b > b   foldl1' :: (b > b > b) > FM k b > b   unsafeFromOrdSeq :: (Ord k, Sequence seq) => seq ([k], a) > FM k a   unsafeAppend :: Ord k => FM k a > FM k a > FM k a   filterLT :: Ord k => [k] > FM k a > FM k a   filterLE :: Ord k => [k] > FM k a > FM k a   filterGT :: Ord k => [k] > FM k a > FM k a   filterGE :: Ord k => [k] > FM k a > FM k a   partitionLT_GE :: Ord k => [k] > FM k a > (FM k a, FM k a)   partitionLE_GT :: Ord k => [k] > FM k a > (FM k a, FM k a)   partitionLT_GT :: Ord k => [k] > FM k a > (FM k a, FM k a)   minViewWithKey :: Monad m => FM k a > m (([k], a), FM k a)   minElemWithKey :: FM k a > ([k], a)   maxViewWithKey :: Monad m => FM k a > m (([k], a), FM k a)   maxElemWithKey :: FM k a > ([k], a)   foldrWithKey :: Ord k => ([k] > a > b > b) > b > FM k a > b   foldrWithKey' :: Ord k => ([k] > a > b > b) > b > FM k a > b   foldlWithKey :: Ord k => (b > [k] > a > b) > b > FM k a > b   foldlWithKey' :: Ord k => (b > [k] > a > b) > b > FM k a > b   toOrdSeq :: (Ord k, Sequence seq) => FM k a > seq ([k], a)   mergeVFM :: Ord k => (Maybe a > Maybe b > Maybe c) > FM k a > FM k b > FM k c   mergeKVFM :: Ord k => ([k] > Maybe a > Maybe b > Maybe c) > FM k a > FM k b > FM k c   moduleName :: String 



Type of ternary search tries



Instances  


AssocX operations










































lookupWithDefault :: Ord k => a > [k] > FM k a > a  Source 






adjustOrInsert :: Ord k => (a > a) > a > [k] > FM k a > FM k a  Source 


adjustAllOrInsert :: Ord k => (a > a) > a > [k] > FM k a > FM k a  Source 












fold :: Ord k => (a > b > b) > b > FM k a > b  Source 


fold' :: Ord k => (a > b > b) > b > FM k a > b  Source 














Assoc operations








foldWithKey :: Ord k => ([k] > a > b > b) > b > FM k a > b  Source 


foldWithKey' :: Ord k => ([k] > a > b > b) > b > FM k a > b  Source 






FiniteMapX operations




fromSeqWithKey :: (Ord k, Sequence seq) => ([k] > a > a > a) > seq ([k], a) > FM k a  Source 


insertWith :: Ord k => (a > a > a) > [k] > a > FM k a > FM k a  Source 


insertWithKey :: Ord k => ([k] > a > a > a) > [k] > a > FM k a > FM k a  Source 




insertSeqWithKey :: (Ord k, Sequence seq) => ([k] > a > a > a) > seq ([k], a) > FM k a > FM k a  Source 










intersectionWith :: Ord k => (a > b > c) > FM k a > FM k b > FM k c  Source 




















FiniteMap operations


unionWithKey :: Ord k => ([k] > a > a > a) > FM k a > FM k a > FM k a  Source 




intersectionWithKey :: Ord k => ([k] > a > b > c) > FM k a > FM k b > FM k c  Source 


OrdAssocX operations


















foldr :: Ord k => (a > b > b) > b > FM k a > b  Source 


foldr' :: Ord k => (a > b > b) > b > FM k a > b  Source 






foldl :: (a > b > a) > a > FM t b > a  Source 


foldl' :: (a > b > a) > a > FM t b > a  Source 


foldl1 :: (b > b > b) > FM k b > b  Source 


foldl1' :: (b > b > b) > FM k b > b  Source 




















OrdAssoc operations




minElemWithKey :: FM k a > ([k], a)  Source 




maxElemWithKey :: FM k a > ([k], a)  Source 


foldrWithKey :: Ord k => ([k] > a > b > b) > b > FM k a > b  Source 


foldrWithKey' :: Ord k => ([k] > a > b > b) > b > FM k a > b  Source 


foldlWithKey :: Ord k => (b > [k] > a > b) > b > FM k a > b  Source 


foldlWithKey' :: Ord k => (b > [k] > a > b) > b > FM k a > b  Source 




Other supported operations






Documentation




Produced by Haddock version 2.3.0 