nonemptymap-0.0.4.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 # 

Methods

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

Ord2 NonEmptyMap Source # 

Methods

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

Show2 NonEmptyMap Source # 

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 # 

Methods

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

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

Foldable (NonEmptyMap k) Source # 

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 # 

Methods

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

Ord k => Ord1 (NonEmptyMap k) Source # 

Methods

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

Show k => Show1 (NonEmptyMap k) Source # 

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 # 

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 # 

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 #

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 #