union-map-0.0: Heterogeneous map by open unions.

Safe HaskellNone
LanguageHaskell2010

Data.UnionMap

Contents

Description

An implementation of heterogeneous tree-map by open unions. This module uses the Data.Map module inside, see also https://hackage.haskell.org/package/containers.

Synopsis

Map type

data UnionMap k r Source

Instances

(Show k, All Show r) => Show (UnionMap k r) 
Ord k => Monoid (UnionMap k r) 

Operators

(\\) :: Ord k => UnionMap k r -> UnionMap k r -> UnionMap k r Source

(!) :: (Ord k, Member a as) => UnionMap k as -> k -> a Source

Construction

singleton :: (Ord k, Member a as) => k -> a -> UnionMap k as Source

Query

member :: Ord k => k -> UnionMap k r -> Bool Source

notMember :: Ord k => k -> UnionMap k r -> Bool Source

lookup :: (Ord k, Member a as) => k -> UnionMap k as -> Maybe a Source

lookupU :: Ord k => k -> UnionMap k r -> Maybe (Union r) Source

find :: (Ord k, Member a as) => k -> UnionMap k as -> a Source

findU :: Ord k => k -> UnionMap k r -> Union r Source

findWithDefault :: (Ord k, Member a as) => a -> k -> UnionMap k as -> a Source

Insertion

insert :: (Ord k, Member a as) => k -> a -> UnionMap k as -> UnionMap k as Source

insertWith :: (Ord k, Member a as) => (a -> a -> a) -> k -> a -> UnionMap k as -> UnionMap k as Source

insertWithKey :: (Ord k, Member a as) => (k -> a -> a -> a) -> k -> a -> UnionMap k as -> UnionMap k as Source

Delete/Update

delete :: Ord k => k -> UnionMap k as -> UnionMap k as Source

adjust :: (Ord k, Member a as) => (a -> a) -> k -> UnionMap k as -> UnionMap k as Source

adjustWithKey :: (Ord k, Member a as) => (k -> a -> a) -> k -> UnionMap k as -> UnionMap k as Source

update :: (Ord k, Member a as) => (a -> Maybe a) -> k -> UnionMap k as -> UnionMap k as Source

updateWithKey :: (Ord k, Member a as) => (k -> a -> Maybe a) -> k -> UnionMap k as -> UnionMap k as Source

Set Operation

union :: Ord k => UnionMap k r -> UnionMap k r -> UnionMap k r Source

unions :: Ord k => [UnionMap k r] -> UnionMap k r Source

difference :: Ord k => UnionMap k r -> UnionMap k r -> UnionMap k r Source

intersection :: Ord k => UnionMap k r -> UnionMap k r -> UnionMap k r Source

Conversion

keys :: UnionMap k r -> [k] Source

rebuild :: Include r s => UnionMap k r -> UnionMap k s Source

Map

mapU :: (Union r -> Union s) -> UnionMap k r -> UnionMap k s Source

mapWithKeyU :: (k -> Union r -> Union s) -> UnionMap k r -> UnionMap k s Source

mapU' :: (Union r -> a) -> UnionMap k r -> Map k a Source

mapWithKeyU' :: (k -> Union r -> a) -> UnionMap k r -> Map k a Source

Filter

filterU :: (Union r -> Bool) -> UnionMap k r -> UnionMap k r Source

filterWithKeyU :: (k -> Union r -> Bool) -> UnionMap k r -> UnionMap k r Source

Folds

foldrU :: (Union r -> b -> b) -> b -> UnionMap k r -> b Source

foldrWithKeyU :: (k -> Union r -> b -> b) -> b -> UnionMap k r -> b Source

foldlU' :: (a -> Union r -> a) -> a -> UnionMap k r -> a Source

foldlWithKeyU' :: (a -> k -> Union r -> a) -> a -> UnionMap k r -> a Source

Debugging

showTree :: (Show k, Show (Union r)) => UnionMap k r -> String Source