total-map-0.1.3: Finitely represented total maps

Copyright(c) Conal Elliott 2012--2019
LicenseBSD3
Maintainerconal@conal.net
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Data.TotalMap

Description

Finitely represented total maps. Represented by as a partial map and a default value. Has Applicative and Monad instances (unlike Data.Map).

Synopsis

Documentation

data TMap k v Source #

Total map

Instances
Ord k => Monad (TMap k) Source # 
Instance details

Defined in Data.TotalMap

Methods

(>>=) :: TMap k a -> (a -> TMap k b) -> TMap k b #

(>>) :: TMap k a -> TMap k b -> TMap k b #

return :: a -> TMap k a #

fail :: String -> TMap k a #

Functor (TMap k) Source # 
Instance details

Defined in Data.TotalMap

Methods

fmap :: (a -> b) -> TMap k a -> TMap k b #

(<$) :: a -> TMap k b -> TMap k a #

Ord k => Applicative (TMap k) Source # 
Instance details

Defined in Data.TotalMap

Methods

pure :: a -> TMap k a #

(<*>) :: TMap k (a -> b) -> TMap k a -> TMap k b #

liftA2 :: (a -> b -> c) -> TMap k a -> TMap k b -> TMap k c #

(*>) :: TMap k a -> TMap k b -> TMap k b #

(<*) :: TMap k a -> TMap k b -> TMap k a #

(Show v, Show k) => Show (TMap k v) Source # 
Instance details

Defined in Data.TotalMap

Methods

showsPrec :: Int -> TMap k v -> ShowS #

show :: TMap k v -> String #

showList :: [TMap k v] -> ShowS #

(Ord k, Semigroup v) => Semigroup (TMap k v) Source # 
Instance details

Defined in Data.TotalMap

Methods

(<>) :: TMap k v -> TMap k v -> TMap k v #

sconcat :: NonEmpty (TMap k v) -> TMap k v #

stimes :: Integral b => b -> TMap k v -> TMap k v #

(Ord k, Monoid v) => Monoid (TMap k v) Source # 
Instance details

Defined in Data.TotalMap

Methods

mempty :: TMap k v #

mappend :: TMap k v -> TMap k v -> TMap k v #

mconcat :: [TMap k v] -> TMap k v #

(Ord k, Semiring v) => Semiring (TMap k v) Source # 
Instance details

Defined in Data.TotalMap

Methods

zero :: TMap k v #

one :: TMap k v #

(<.>) :: TMap k v -> TMap k v -> TMap k v #

(<+>) :: TMap k v -> TMap k v -> TMap k v #

add :: [TMap k v] -> TMap k v #

mul :: [TMap k v] -> TMap k v #

(Ord k, StarSemiring v) => StarSemiring (TMap k v) Source # 
Instance details

Defined in Data.TotalMap

Methods

star :: TMap k v -> TMap k v #

plus :: TMap k v -> TMap k v #

(Ord k, DetectableZero v) => DetectableZero (TMap k v) Source # 
Instance details

Defined in Data.TotalMap

Methods

isZero :: TMap k v -> Bool #

fromPartial :: v -> Map k v -> TMap k v Source #

Create a total map from a default value and a partial map.

empty :: v -> TMap k v Source #

A total map only default

insert :: Ord k => k -> v -> TMap k v -> TMap k v Source #

Insert a key/value pair

singleton :: Ord k => k -> v -> v -> TMap k v Source #

Singleton plus default

(!) :: Ord k => TMap k v -> k -> v infixl 9 Source #

Sample a total map. Semantic function.

tabulate :: Eq k => v -> Set k -> (k -> v) -> TMap k v Source #

Construct a total map, given a default value, a set of keys, and a function to sample over that set. You might want to trim the result.

trim :: (Ord k, Eq v) => TMap k v -> TMap k v Source #

Optimize a TMap, weeding out any explicit default values. A semantic no-op, i.e., (!) . trim == (!).

intersectionPartialWith :: Ord k => (a -> b -> c) -> TMap k a -> Map k b -> Map k c Source #

Intersect a total map with a partial one using an element combinator.

range :: Ord v => TMap k v -> Set v Source #

Deprecated: Non-denotative

Witness the finiteness of the support concretely by giving its image.

mapKeysWith :: (Semiring z, Ord b) => (z -> z -> z) -> (a -> b) -> TMap a z -> TMap b z Source #