planet-mitchell-0.1.0: Planet Mitchell

Safe HaskellSafe
LanguageHaskell2010

Map.Hash.Linked

Contents

Synopsis

InsOrdHashMap

data InsOrdHashMap k v #

HashMap which tries it's best to remember insertion order of elements.

Instances
(Eq k, Hashable k) => FunctorWithIndex k (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

imap :: (k -> a -> b) -> InsOrdHashMap k a -> InsOrdHashMap k b #

imapped :: (Indexable k p, Settable f) => p a (f b) -> InsOrdHashMap k a -> f (InsOrdHashMap k b) #

(Eq k, Hashable k) => FoldableWithIndex k (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

ifoldMap :: Monoid m => (k -> a -> m) -> InsOrdHashMap k a -> m #

ifolded :: (Indexable k p, Contravariant f, Applicative f) => p a (f a) -> InsOrdHashMap k a -> f (InsOrdHashMap k a) #

ifoldr :: (k -> a -> b -> b) -> b -> InsOrdHashMap k a -> b #

ifoldl :: (k -> b -> a -> b) -> b -> InsOrdHashMap k a -> b #

ifoldr' :: (k -> a -> b -> b) -> b -> InsOrdHashMap k a -> b #

ifoldl' :: (k -> b -> a -> b) -> b -> InsOrdHashMap k a -> b #

(Eq k, Hashable k) => TraversableWithIndex k (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

itraverse :: Applicative f => (k -> a -> f b) -> InsOrdHashMap k a -> f (InsOrdHashMap k b) #

itraversed :: (Indexable k p, Applicative f) => p a (f b) -> InsOrdHashMap k a -> f (InsOrdHashMap k b) #

Functor (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

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

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

Foldable (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

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

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

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

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

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

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

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

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

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

null :: InsOrdHashMap k a -> Bool #

length :: InsOrdHashMap k a -> Int #

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

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

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

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

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

Traversable (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

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

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

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

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

ToJSONKey k => ToJSON1 (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

liftToJSON :: (a -> Value) -> ([a] -> Value) -> InsOrdHashMap k a -> Value #

liftToJSONList :: (a -> Value) -> ([a] -> Value) -> [InsOrdHashMap k a] -> Value #

liftToEncoding :: (a -> Encoding) -> ([a] -> Encoding) -> InsOrdHashMap k a -> Encoding #

liftToEncodingList :: (a -> Encoding) -> ([a] -> Encoding) -> [InsOrdHashMap k a] -> Encoding #

(Eq k, Hashable k, FromJSONKey k) => FromJSON1 (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

liftParseJSON :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser (InsOrdHashMap k a) #

liftParseJSONList :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser [InsOrdHashMap k a] #

(Eq k, Hashable k) => Apply (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

(<.>) :: InsOrdHashMap k (a -> b) -> InsOrdHashMap k a -> InsOrdHashMap k b #

(.>) :: InsOrdHashMap k a -> InsOrdHashMap k b -> InsOrdHashMap k b #

(<.) :: InsOrdHashMap k a -> InsOrdHashMap k b -> InsOrdHashMap k a #

liftF2 :: (a -> b -> c) -> InsOrdHashMap k a -> InsOrdHashMap k b -> InsOrdHashMap k c #

(Eq k, Hashable k) => Bind (InsOrdHashMap k) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

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

join :: InsOrdHashMap k (InsOrdHashMap k a) -> InsOrdHashMap k a #

(Eq k, Hashable k) => IsList (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Associated Types

type Item (InsOrdHashMap k v) :: * #

(Eq k, Eq v) => Eq (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

(==) :: InsOrdHashMap k v -> InsOrdHashMap k v -> Bool #

(/=) :: InsOrdHashMap k v -> InsOrdHashMap k v -> Bool #

(Data k, Data v, Eq k, Hashable k) => Data (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

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

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

toConstr :: InsOrdHashMap k v -> Constr #

dataTypeOf :: InsOrdHashMap k v -> DataType #

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

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

gmapT :: (forall b. Data b => b -> b) -> InsOrdHashMap k v -> InsOrdHashMap k v #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> InsOrdHashMap k v -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> InsOrdHashMap k v -> r #

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

gmapQi :: Int -> (forall d. Data d => d -> u) -> InsOrdHashMap k v -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> InsOrdHashMap k v -> m (InsOrdHashMap k v) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> InsOrdHashMap k v -> m (InsOrdHashMap k v) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> InsOrdHashMap k v -> m (InsOrdHashMap k v) #

(Eq k, Hashable k, Read k, Read v) => Read (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

(Show k, Show v) => Show (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

(Eq k, Hashable k) => Semigroup (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

(Eq k, Hashable k) => Monoid (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

(Hashable k, Hashable v) => Hashable (InsOrdHashMap k v)

hashWithSalt salt . toHashMap = hashWithSalt salt.

Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

hashWithSalt :: Int -> InsOrdHashMap k v -> Int #

hash :: InsOrdHashMap k v -> Int #

(ToJSONKey k, ToJSON v) => ToJSON (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

(Eq k, Hashable k, FromJSONKey k, FromJSON v) => FromJSON (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

(Eq k, Hashable k) => Ixed (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

(Eq k, Hashable k) => At (InsOrdHashMap k a) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

Methods

at :: Index (InsOrdHashMap k a) -> Lens' (InsOrdHashMap k a) (Maybe (IxValue (InsOrdHashMap k a))) #

type Item (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

type Item (InsOrdHashMap k v) = (k, v)
type Index (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

type Index (InsOrdHashMap k v) = k
type IxValue (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

type IxValue (InsOrdHashMap k v) = v

adjust :: (Eq k, Hashable k) => (v -> v) -> k -> InsOrdHashMap k v -> InsOrdHashMap k v #

alter :: (Eq k, Hashable k) => (Maybe v -> Maybe v) -> k -> InsOrdHashMap k v -> InsOrdHashMap k v #

delete :: (Eq k, Hashable k) => k -> InsOrdHashMap k v -> InsOrdHashMap k v #

elems :: InsOrdHashMap k v -> [v] #

filter :: (v -> Bool) -> InsOrdHashMap k v -> InsOrdHashMap k v #

filterWithKey :: (k -> v -> Bool) -> InsOrdHashMap k v -> InsOrdHashMap k v #

foldMapWithKey :: Monoid m => (k -> a -> m) -> InsOrdHashMap k a -> m #

foldl' :: (a -> v -> a) -> a -> InsOrdHashMap k v -> a #

foldlWithKey' :: (a -> k -> v -> a) -> a -> InsOrdHashMap k v -> a #

foldr :: (v -> a -> a) -> a -> InsOrdHashMap k v -> a #

foldrWithKey :: (k -> v -> a -> a) -> a -> InsOrdHashMap k v -> a #

fromList :: (Eq k, Hashable k) => [(k, v)] -> InsOrdHashMap k v #

insert :: (Eq k, Hashable k) => k -> v -> InsOrdHashMap k v -> InsOrdHashMap k v #

insertWith :: (Eq k, Hashable k) => (v -> v -> v) -> k -> v -> InsOrdHashMap k v -> InsOrdHashMap k v #

intersectionWith :: (Eq k, Hashable k) => (v1 -> v2 -> v3) -> InsOrdHashMap k v1 -> InsOrdHashMap k v2 -> InsOrdHashMap k v3 #

intersectionWithKey :: (Eq k, Hashable k) => (k -> v1 -> v2 -> v3) -> InsOrdHashMap k v1 -> InsOrdHashMap k v2 -> InsOrdHashMap k v3 #

keys :: InsOrdHashMap k v -> [k] #

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

lookupDefault #

Arguments

:: (Eq k, Hashable k) 
=> v

Default value to return.

-> k 
-> InsOrdHashMap k v 
-> v 

map :: (v1 -> v2) -> InsOrdHashMap k v1 -> InsOrdHashMap k v2 #

mapKeys :: (Eq k', Hashable k') => (k -> k') -> InsOrdHashMap k v -> InsOrdHashMap k' v #

Order preserving mapping of keys.

mapMaybe :: (v1 -> Maybe v2) -> InsOrdHashMap k v1 -> InsOrdHashMap k v2 #

mapMaybeWithKey :: (k -> v1 -> Maybe v2) -> InsOrdHashMap k v1 -> InsOrdHashMap k v2 #

mapWithKey :: (k -> v1 -> v2) -> InsOrdHashMap k v1 -> InsOrdHashMap k v2 #

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

singleton :: Hashable k => k -> v -> InsOrdHashMap k v #

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

toRevList :: InsOrdHashMap k v -> [(k, v)] #

traverseKeys :: (Eq k', Hashable k', Applicative f) => (k -> f k') -> InsOrdHashMap k v -> f (InsOrdHashMap k' v) #

traverseWithKey :: Applicative f => (k -> a -> f b) -> InsOrdHashMap k a -> f (InsOrdHashMap k b) #

union :: (Eq k, Hashable k) => InsOrdHashMap k v -> InsOrdHashMap k v -> InsOrdHashMap k v #

unionWith :: (Eq k, Hashable k) => (v -> v -> v) -> InsOrdHashMap k v -> InsOrdHashMap k v -> InsOrdHashMap k v #

The union of two maps. If a key occurs in both maps, the provided function (first argument) will be used to compute the result.

Ordered traversal will go thru keys in the first map first.

unionWithKey :: (Eq k, Hashable k) => (k -> v -> v -> v) -> InsOrdHashMap k v -> InsOrdHashMap k v -> InsOrdHashMap k v #

unions :: (Eq k, Hashable k, Foldable f) => f (InsOrdHashMap k v) -> InsOrdHashMap k v #

unorderedFoldMap :: Monoid m => (a -> m) -> InsOrdHashMap k a -> m #

More efficient than foldMap, when folding in insertion order is not important.

unorderedFoldMapWithKey :: Monoid m => (k -> a -> m) -> InsOrdHashMap k a -> m #

More efficient than foldMapWithKey, when folding in insertion order is not important.

unorderedTraverse :: Applicative f => (a -> f b) -> InsOrdHashMap k a -> f (InsOrdHashMap k b) #

More efficient than traverse, when traversing in insertion order is not important.

unorderedTraverseWithKey :: Applicative f => (k -> a -> f b) -> InsOrdHashMap k a -> f (InsOrdHashMap k b) #

More efficient than traverseWithKey, when traversing in insertion order is not important.

update :: (Eq k, Hashable k) => (a -> Maybe a) -> k -> InsOrdHashMap k a -> InsOrdHashMap k a #

Optics

hashMap :: (Profunctor p, Functor f) => p (HashMap k a) (f (HashMap k b)) -> p (InsOrdHashMap k a) (f (InsOrdHashMap k b)) #

This is a slight lie, as roundtrip doesn't preserve ordering.

unorderedTraversal :: Applicative f => (a -> f b) -> InsOrdHashMap k a -> f (InsOrdHashMap k b) #