increments-0.1.0.2: type classes for incremental updates to data

Safe HaskellNone

Data.Increments.Containers

Description

Incremental instances for containers, and useful functions for defining new instances.

Synopsis

Documentation

type MapLikeIncrement k a = ([AddItem k a], [RemItem k], [ModItem k a])Source

The Increment of a map-like (key-value) container.

type SetLikeIncrement a = ([AddItem () a], [RemItem a])Source

The Increment of a set.

changesSetLike :: (c -> [a]) -> (c -> c -> c) -> c -> c -> SetLikeIncrement aSource

a generic changes function, useful for defining instances for sets.

applySetLike :: (a -> c -> c) -> (a -> c -> c) -> c -> SetLikeIncrement a -> cSource

a generic applyChanges function, useful for defining instances for sets.

changesMapLike :: (Ord k, IncrementalCnstr a) => (c -> [(k, a)]) -> c -> c -> MapLikeIncrement k aSource

a generic changes function, useful for defining instances for maps.

applyMapLike :: Incremental a => (k -> a -> c -> c) -> (k -> c -> c) -> (k -> Increment a -> c -> c) -> c -> MapLikeIncrement k a -> cSource

a generic applyChanges function, useful for defining instances for maps.