nonemptymap-0.0.6.0: A NonEmptyMap Implementation

Copyright(c) Christopher Davenport 2018
LicenseBSD-style
MaintainerChris@ChristopherDavenport.tech
Portabilityportable
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Map.NonEmpty

Contents

Description

Description

An efficient implementation of non-empty maps from keys to values (dictionaries).

Since many function names (but not the type name) clash with Prelude names, this module is usually imported qualified, e.g.

 import Data.Map.NonEmpty (NonEmptyMap)
 import qualified Data.Map.NonEmpty as NonEmptyMap
Synopsis

Documentation

data NonEmptyMap k a Source #

A NonEmptyMap of keys k to values a

Constructors

NonEmptyMap (k, a) (Map k a) 
Instances
Eq2 NonEmptyMap Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

liftEq2 :: (a -> b -> Bool) -> (c -> d -> Bool) -> NonEmptyMap a c -> NonEmptyMap b d -> Bool #

Ord2 NonEmptyMap Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> NonEmptyMap a c -> NonEmptyMap b d -> Ordering #

Show2 NonEmptyMap Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> NonEmptyMap a b -> ShowS #

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [NonEmptyMap a b] -> ShowS #

Functor (NonEmptyMap k) Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

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

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

Foldable (NonEmptyMap k) Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

fold :: Monoid m => NonEmptyMap k m -> m #

foldMap :: Monoid m => (a -> m) -> NonEmptyMap k a -> m #

foldr :: (a -> b -> b) -> b -> NonEmptyMap k a -> b #

foldr' :: (a -> b -> b) -> b -> NonEmptyMap k a -> b #

foldl :: (b -> a -> b) -> b -> NonEmptyMap k a -> b #

foldl' :: (b -> a -> b) -> b -> NonEmptyMap k a -> b #

foldr1 :: (a -> a -> a) -> NonEmptyMap k a -> a #

foldl1 :: (a -> a -> a) -> NonEmptyMap k a -> a #

toList :: NonEmptyMap k a -> [a] #

null :: NonEmptyMap k a -> Bool #

length :: NonEmptyMap k a -> Int #

elem :: Eq a => a -> NonEmptyMap k a -> Bool #

maximum :: Ord a => NonEmptyMap k a -> a #

minimum :: Ord a => NonEmptyMap k a -> a #

sum :: Num a => NonEmptyMap k a -> a #

product :: Num a => NonEmptyMap k a -> a #

Eq k => Eq1 (NonEmptyMap k) Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

liftEq :: (a -> b -> Bool) -> NonEmptyMap k a -> NonEmptyMap k b -> Bool #

Ord k => Ord1 (NonEmptyMap k) Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

liftCompare :: (a -> b -> Ordering) -> NonEmptyMap k a -> NonEmptyMap k b -> Ordering #

Show k => Show1 (NonEmptyMap k) Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> NonEmptyMap k a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [NonEmptyMap k a] -> ShowS #

Foldable1 (NonEmptyMap k) Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

fold1 :: Semigroup m => NonEmptyMap k m -> m #

foldMap1 :: Semigroup m => (a -> m) -> NonEmptyMap k a -> m #

toNonEmpty :: NonEmptyMap k a -> NonEmpty a #

(Show k, Show a) => Show (NonEmptyMap k a) Source # 
Instance details

Defined in Data.Map.NonEmpty

Methods

showsPrec :: Int -> NonEmptyMap k a -> ShowS #

show :: NonEmptyMap k a -> String #

showList :: [NonEmptyMap k a] -> ShowS #

Construction

singleton :: (k, a) -> NonEmptyMap k a Source #

fromList :: Ord k => [(k, a)] -> Maybe (NonEmptyMap k a) Source #

fromListWith :: Ord k => (a -> a -> a) -> [(k, a)] -> Maybe (NonEmptyMap k a) Source #

fromListWithKey :: Ord k => (k -> a -> a -> a) -> [(k, a)] -> Maybe (NonEmptyMap k a) Source #

fromNonEmptyWith :: Ord k => (t -> t -> t) -> NonEmpty (k, t) -> NonEmptyMap k t Source #

fromNonEmptyWithKey :: Ord k => (k -> a -> a -> a) -> NonEmpty (k, a) -> NonEmptyMap k a Source #

Insertion

insert :: Ord k => k -> a -> NonEmptyMap k a -> NonEmptyMap k a Source #

insertWith :: Ord k => (a -> a -> a) -> k -> a -> NonEmptyMap k a -> NonEmptyMap k a Source #

insertWithKey :: Ord k => (k -> a -> a -> a) -> k -> a -> NonEmptyMap k a -> NonEmptyMap k a Source #

insertLookupWithKey :: Ord k => (k -> a -> a -> a) -> k -> a -> NonEmptyMap k a -> (Maybe a, NonEmptyMap k a) Source #

Deletion/Update

delete :: Ord k => k -> NonEmptyMap k a -> Map k a Source #

adjust :: Ord k => (a -> a) -> k -> NonEmptyMap k a -> NonEmptyMap k a Source #

update :: Ord k => (a -> Maybe a) -> k -> NonEmptyMap k a -> Map k a Source #

alter :: Ord k => (Maybe a -> Maybe a) -> k -> NonEmptyMap k a -> Map k a Source #

alterF :: forall f k a. (Functor f, Ord k) => (Maybe a -> f (Maybe a)) -> k -> NonEmptyMap k a -> f (Map k a) Source #

Query

lookup :: Ord k => k -> NonEmptyMap k a -> Maybe a Source #

(!?) :: Ord k => NonEmptyMap k a -> k -> Maybe a Source #

findWithDefault :: Ord k => a -> k -> NonEmptyMap k a -> a Source #

member :: Ord k => k -> NonEmptyMap k a -> Bool Source #

notMember :: Ord k => k -> NonEmptyMap k a -> Bool Source #

Size

Conversions

toList :: NonEmptyMap k a -> [(k, a)] Source #

toMap :: Ord k => NonEmptyMap k a -> Map k a Source #

Map

map :: (t -> b) -> NonEmptyMap k t -> NonEmptyMap k b Source #

mapWithKey :: (t -> b) -> NonEmptyMap k t -> NonEmptyMap k b Source #

mapKeys :: Ord k => (t2 -> k) -> NonEmptyMap t2 t1 -> NonEmptyMap k t1 Source #

mapKeysWith :: Ord k => (t1 -> t1 -> t1) -> (t2 -> k) -> NonEmptyMap t2 t1 -> NonEmptyMap k t1 Source #