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

Copyright(C) 2015, Yu Fukuzawa
LicenseBSD3
Maintainerminpou.primer@email.com
Stabilityexperimental
Portabilityportable
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

Types

data UnionIntMap r Source

Instances

type Key = Int Source

Operators

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

Construction

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

Query

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

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

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

Insertion

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

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

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

Delete/Update

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

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

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

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

Set Operation

Conversion

Map

mapU :: ((K0 :| r) -> K0 :| s) -> UnionIntMap r -> UnionIntMap s Source

mapWithKeyU :: (Key -> (K0 :| r) -> K0 :| s) -> UnionIntMap r -> UnionIntMap s Source

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

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

Filter

Folds

foldrU :: ((K0 :| r) -> b -> b) -> b -> UnionIntMap r -> b Source

foldrWithKeyU :: (Key -> (K0 :| r) -> b -> b) -> b -> UnionIntMap r -> b Source

foldlU' :: (a -> (K0 :| r) -> a) -> a -> UnionIntMap r -> a Source

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

Debugging