strict-types-0.1.3: A type level predicate ranging over strict types

Safe HaskellNone
LanguageHaskell2010

Data.Strict.HashMap

Description

A wrapper around HashMap from the unordered-containers package, with the aim of fixing the strictness of the type class operations, to obtain a fully strict (observationally) data structure.

Documentation

newtype HashMap k a Source #

Constructors

Strict 

Fields

Instances
Eq2 HashMap Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

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

Show2 HashMap Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

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

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

Hashable2 HashMap Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

liftHashWithSalt2 :: (Int -> a -> Int) -> (Int -> b -> Int) -> Int -> HashMap a b -> Int #

Functor (HashMap k) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

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

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

Foldable (HashMap k) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

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

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

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

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

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

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

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

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

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

null :: HashMap k a -> Bool #

length :: HashMap k a -> Int #

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

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

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

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

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

Traversable (HashMap k) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

traverse :: Applicative f => (a -> f b) -> HashMap k a -> f (HashMap k b) #

sequenceA :: Applicative f => HashMap k (f a) -> f (HashMap k a) #

mapM :: Monad m => (a -> m b) -> HashMap k a -> m (HashMap k b) #

sequence :: Monad m => HashMap k (m a) -> m (HashMap k a) #

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

Defined in Data.Strict.HashMap

Methods

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

(Eq k, Hashable k, Read k) => Read1 (HashMap k) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

liftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (HashMap k a) #

liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [HashMap k a] #

liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (HashMap k a) #

liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [HashMap k a] #

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

Defined in Data.Strict.HashMap

Methods

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

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

Hashable k => Hashable1 (HashMap k) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> HashMap k a -> Int #

(StrictType seen k, StrictType seen v) => StrictType seen (HashMap k v :: *) Source # 
Instance details

Defined in Data.Strict.HashMap

(Eq k, Hashable k) => IsList (HashMap k v) Source # 
Instance details

Defined in Data.Strict.HashMap

Associated Types

type Item (HashMap k v) :: * #

Methods

fromList :: [Item (HashMap k v)] -> HashMap k v #

fromListN :: Int -> [Item (HashMap k v)] -> HashMap k v #

toList :: HashMap k v -> [Item (HashMap k v)] #

(Eq k, Eq a) => Eq (HashMap k a) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

(==) :: HashMap k a -> HashMap k a -> Bool #

(/=) :: HashMap k a -> HashMap k a -> Bool #

(Data k, Data a, Eq k, Hashable k) => Data (HashMap k a) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HashMap k a -> c (HashMap k a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HashMap k a) #

toConstr :: HashMap k a -> Constr #

dataTypeOf :: HashMap k a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HashMap k a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HashMap k a)) #

gmapT :: (forall b. Data b => b -> b) -> HashMap k a -> HashMap k a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HashMap k a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HashMap k a -> r #

gmapQ :: (forall d. Data d => d -> u) -> HashMap k a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HashMap k a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HashMap k a -> m (HashMap k a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HashMap k a -> m (HashMap k a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HashMap k a -> m (HashMap k a) #

(Eq k, Hashable k, Read k, Read a) => Read (HashMap k a) Source # 
Instance details

Defined in Data.Strict.HashMap

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

Defined in Data.Strict.HashMap

Methods

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

show :: HashMap k a -> String #

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

(Eq k, Hashable k) => Semigroup (HashMap k a) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

(<>) :: HashMap k a -> HashMap k a -> HashMap k a #

sconcat :: NonEmpty (HashMap k a) -> HashMap k a #

stimes :: Integral b => b -> HashMap k a -> HashMap k a #

(Eq k, Hashable k) => Monoid (HashMap k a) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

mempty :: HashMap k a #

mappend :: HashMap k a -> HashMap k a -> HashMap k a #

mconcat :: [HashMap k a] -> HashMap k a #

(NFData k, NFData a) => NFData (HashMap k a) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

rnf :: HashMap k a -> () #

(Hashable k, Hashable a) => Hashable (HashMap k a) Source # 
Instance details

Defined in Data.Strict.HashMap

Methods

hashWithSalt :: Int -> HashMap k a -> Int #

hash :: HashMap k a -> Int #

type Item (HashMap k v) Source # 
Instance details

Defined in Data.Strict.HashMap

type Item (HashMap k v) = (k, v)

adjust :: (Hashable k2, Eq k2) => (a2 -> a2) -> k2 -> HashMap k2 a2 -> HashMap k2 a2 Source #

alter :: (Hashable k2, Eq k2) => (Maybe a2 -> Maybe a2) -> k2 -> HashMap k2 a2 -> HashMap k2 a2 Source #

delete :: (Hashable k2, Eq k2) => k2 -> HashMap k2 a2 -> HashMap k2 a2 Source #

difference :: (Hashable k3, Eq k3) => HashMap k3 a3 -> HashMap k3 w -> HashMap k3 a3 Source #

differenceWith :: (Hashable k3, Eq k3) => (a3 -> w -> Maybe a3) -> HashMap k3 a3 -> HashMap k3 w -> HashMap k3 a3 Source #

elems :: HashMap k v -> [v] Source #

filter :: (a2 -> Bool) -> HashMap k2 a2 -> HashMap k2 a2 Source #

filterWithKey :: (k2 -> a2 -> Bool) -> HashMap k2 a2 -> HashMap k2 a2 Source #

fromList :: (Hashable k, Eq k) => [(k, a)] -> HashMap k a Source #

fromListWith :: (Hashable k, Eq k) => (a -> a -> a) -> [(k, a)] -> HashMap k a Source #

foldl' :: (HashMap k2 a2 -> v -> HashMap k2 a2) -> HashMap k2 a2 -> HashMap k v -> HashMap k2 a2 Source #

foldlWithKey' :: (HashMap k2 a2 -> k -> v -> HashMap k2 a2) -> HashMap k2 a2 -> HashMap k v -> HashMap k2 a2 Source #

foldr :: (v -> HashMap k2 a2 -> HashMap k2 a2) -> HashMap k2 a2 -> HashMap k v -> HashMap k2 a2 Source #

foldrWithKey :: (k -> v -> HashMap k2 a2 -> HashMap k2 a2) -> HashMap k2 a2 -> HashMap k v -> HashMap k2 a2 Source #

insert :: (Hashable k2, Eq k2) => k2 -> a2 -> HashMap k2 a2 -> HashMap k2 a2 Source #

insertWith :: (Hashable k2, Eq k2) => (a2 -> a2 -> a2) -> k2 -> a2 -> HashMap k2 a2 -> HashMap k2 a2 Source #

intersection :: (Hashable k3, Eq k3) => HashMap k3 a3 -> HashMap k3 w -> HashMap k3 a3 Source #

intersectionWith :: (Hashable k3, Eq k3) => (v1 -> v2 -> a3) -> HashMap k3 v1 -> HashMap k3 v2 -> HashMap k3 a3 Source #

intersectionWithKey :: (Hashable k3, Eq k3) => (k3 -> v1 -> v2 -> a3) -> HashMap k3 v1 -> HashMap k3 v2 -> HashMap k3 a3 Source #

keys :: HashMap k v -> [k] Source #

lookup :: (Hashable k, Eq k) => k -> HashMap k v -> Maybe v Source #

lookupDefault :: (Hashable k, Eq k) => c -> k -> HashMap k c -> c Source #

map :: (v1 -> a2) -> HashMap k2 v1 -> HashMap k2 a2 Source #

mapWithKey :: (k2 -> v1 -> a2) -> HashMap k2 v1 -> HashMap k2 a2 Source #

mapMaybe :: (v1 -> Maybe a2) -> HashMap k2 v1 -> HashMap k2 a2 Source #

mapMaybeWithKey :: (k2 -> v1 -> Maybe a2) -> HashMap k2 v1 -> HashMap k2 a2 Source #

member :: (Hashable k, Eq k) => k -> HashMap k a -> Bool Source #

size :: HashMap k v -> Int Source #

singleton :: Hashable k => k -> a -> HashMap k a Source #

toList :: HashMap k v -> [(k, v)] Source #

traverseWithKey :: Applicative f => (k -> v1 -> f a) -> HashMap k v1 -> f (HashMap k a) Source #

union :: (Hashable k3, Eq k3) => HashMap k3 a3 -> HashMap k3 a3 -> HashMap k3 a3 Source #

unions :: (Hashable k, Eq k) => [HashMap k a] -> HashMap k a Source #

unionWith :: (Hashable k3, Eq k3) => (a3 -> a3 -> a3) -> HashMap k3 a3 -> HashMap k3 a3 -> HashMap k3 a3 Source #

unionWithKey :: (Hashable k3, Eq k3) => (k3 -> a3 -> a3 -> a3) -> HashMap k3 a3 -> HashMap k3 a3 -> HashMap k3 a3 Source #

update :: (Hashable k2, Eq k2) => (a2 -> Maybe a2) -> k2 -> HashMap k2 a2 -> HashMap k2 a2 Source #

(!) :: (Hashable k, Eq k) => HashMap k v -> k -> v Source #