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

Safe HaskellNone
LanguageHaskell2010

Data.UnionIntMap

Contents

Description

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

Synopsis

Map type

data UnionIntMap r Source

Instances

Operators

(!) :: Member a as => UnionIntMap as -> Key -> a Source

Construction

singleton :: Member a as => Key -> a -> UnionIntMap as Source

Query

member :: Key -> UnionIntMap r -> Bool Source

lookup :: Member a as => Key -> UnionIntMap as -> Maybe a Source

lookupU :: Key -> UnionIntMap r -> Maybe (Union r) Source

find :: Member a as => Key -> UnionIntMap as -> a Source

findU :: Key -> UnionIntMap r -> Union r Source

findWithDefault :: Member a as => a -> Key -> UnionIntMap as -> a Source

Insertion

insert :: Member a as => Key -> a -> UnionIntMap as -> UnionIntMap as Source

insertWith :: Member a as => (a -> a -> a) -> Key -> a -> UnionIntMap as -> UnionIntMap as Source

insertWithKey :: Member a as => (Key -> a -> a -> a) -> Key -> a -> UnionIntMap as -> UnionIntMap as Source

Delete/Update

adjust :: Member a as => (a -> a) -> Key -> UnionIntMap as -> UnionIntMap as Source

adjustWithKey :: Member a as => (Key -> a -> a) -> Key -> UnionIntMap as -> UnionIntMap as Source

update :: Member a as => (a -> Maybe a) -> Key -> UnionIntMap as -> UnionIntMap as Source

updateWithKey :: Member a as => (Key -> a -> Maybe a) -> Key -> UnionIntMap as -> UnionIntMap as Source

Set Operation

Conversion

keys :: UnionIntMap r -> [Key] Source

Map

mapWithKeyU :: (Key -> Union r -> Union s) -> UnionIntMap r -> UnionIntMap s Source

mapU' :: (Union r -> a) -> UnionIntMap r -> IntMap a Source

mapWithKeyU' :: (Key -> Union r -> a) -> UnionIntMap r -> IntMap a Source

Filter

Folds

foldrU :: (Union r -> b -> b) -> b -> UnionIntMap r -> b Source

foldrWithKeyU :: (Key -> Union r -> b -> b) -> b -> UnionIntMap r -> b Source

foldlU' :: (a -> Union r -> a) -> a -> UnionIntMap r -> a Source

foldlWithKeyU' :: (a -> Key -> Union r -> a) -> a -> UnionIntMap r -> a Source

Debugging