int-like-0.3.1: Newtype wrappers over IntSet and IntMap
Safe HaskellNone
LanguageHaskell2010

IntLike.Map

Synopsis

Map type

newtype IntLikeMap x a Source #

Constructors

IntLikeMap 

Fields

Instances

Instances details
Foldable (IntLikeMap x) Source # 
Instance details

Defined in IntLike.Map

Methods

fold :: Monoid m => IntLikeMap x m -> m #

foldMap :: Monoid m => (a -> m) -> IntLikeMap x a -> m #

foldMap' :: Monoid m => (a -> m) -> IntLikeMap x a -> m #

foldr :: (a -> b -> b) -> b -> IntLikeMap x a -> b #

foldr' :: (a -> b -> b) -> b -> IntLikeMap x a -> b #

foldl :: (b -> a -> b) -> b -> IntLikeMap x a -> b #

foldl' :: (b -> a -> b) -> b -> IntLikeMap x a -> b #

foldr1 :: (a -> a -> a) -> IntLikeMap x a -> a #

foldl1 :: (a -> a -> a) -> IntLikeMap x a -> a #

toList :: IntLikeMap x a -> [a] #

null :: IntLikeMap x a -> Bool #

length :: IntLikeMap x a -> Int #

elem :: Eq a => a -> IntLikeMap x a -> Bool #

maximum :: Ord a => IntLikeMap x a -> a #

minimum :: Ord a => IntLikeMap x a -> a #

sum :: Num a => IntLikeMap x a -> a #

product :: Num a => IntLikeMap x a -> a #

Traversable (IntLikeMap x) Source # 
Instance details

Defined in IntLike.Map

Methods

traverse :: Applicative f => (a -> f b) -> IntLikeMap x a -> f (IntLikeMap x b) #

sequenceA :: Applicative f => IntLikeMap x (f a) -> f (IntLikeMap x a) #

mapM :: Monad m => (a -> m b) -> IntLikeMap x a -> m (IntLikeMap x b) #

sequence :: Monad m => IntLikeMap x (m a) -> m (IntLikeMap x a) #

Functor (IntLikeMap x) Source # 
Instance details

Defined in IntLike.Map

Methods

fmap :: (a -> b) -> IntLikeMap x a -> IntLikeMap x b #

(<$) :: a -> IntLikeMap x b -> IntLikeMap x a #

Monoid (IntLikeMap x a) Source # 
Instance details

Defined in IntLike.Map

Methods

mempty :: IntLikeMap x a #

mappend :: IntLikeMap x a -> IntLikeMap x a -> IntLikeMap x a #

mconcat :: [IntLikeMap x a] -> IntLikeMap x a #

Semigroup (IntLikeMap x a) Source # 
Instance details

Defined in IntLike.Map

Methods

(<>) :: IntLikeMap x a -> IntLikeMap x a -> IntLikeMap x a #

sconcat :: NonEmpty (IntLikeMap x a) -> IntLikeMap x a #

stimes :: Integral b => b -> IntLikeMap x a -> IntLikeMap x a #

Show a => Show (IntLikeMap x a) Source # 
Instance details

Defined in IntLike.Map

Methods

showsPrec :: Int -> IntLikeMap x a -> ShowS #

show :: IntLikeMap x a -> String #

showList :: [IntLikeMap x a] -> ShowS #

NFData a => NFData (IntLikeMap x a) Source # 
Instance details

Defined in IntLike.Map

Methods

rnf :: IntLikeMap x a -> () #

Eq a => Eq (IntLikeMap x a) Source # 
Instance details

Defined in IntLike.Map

Methods

(==) :: IntLikeMap x a -> IntLikeMap x a -> Bool #

(/=) :: IntLikeMap x a -> IntLikeMap x a -> Bool #

Ord a => Ord (IntLikeMap x a) Source # 
Instance details

Defined in IntLike.Map

Methods

compare :: IntLikeMap x a -> IntLikeMap x a -> Ordering #

(<) :: IntLikeMap x a -> IntLikeMap x a -> Bool #

(<=) :: IntLikeMap x a -> IntLikeMap x a -> Bool #

(>) :: IntLikeMap x a -> IntLikeMap x a -> Bool #

(>=) :: IntLikeMap x a -> IntLikeMap x a -> Bool #

max :: IntLikeMap x a -> IntLikeMap x a -> IntLikeMap x a #

min :: IntLikeMap x a -> IntLikeMap x a -> IntLikeMap x a #

Construction

singleton :: Coercible x Int => x -> a -> IntLikeMap x a Source #

fromSet :: Coercible x Int => (x -> a) -> IntLikeSet x -> IntLikeMap x a Source #

From Unordered Lists

fromList :: Coercible x Int => [(x, a)] -> IntLikeMap x a Source #

fromListWith :: Coercible x Int => (a -> a -> a) -> [(x, a)] -> IntLikeMap x a Source #

fromListWithKey :: Coercible x Int => (x -> a -> a -> a) -> [(x, a)] -> IntLikeMap x a Source #

From Ascending Lists

fromAscList :: Coercible x Int => [(x, a)] -> IntLikeMap x a Source #

fromAscListWith :: Coercible x Int => (a -> a -> a) -> [(x, a)] -> IntLikeMap x a Source #

fromAscListWithKey :: Coercible x Int => (x -> a -> a -> a) -> [(x, a)] -> IntLikeMap x a Source #

Insertion

insert :: Coercible x Int => x -> a -> IntLikeMap x a -> IntLikeMap x a Source #

insertWith :: Coercible x Int => (a -> a -> a) -> x -> a -> IntLikeMap x a -> IntLikeMap x a Source #

insertWithKey :: Coercible x Int => (x -> a -> a -> a) -> x -> a -> IntLikeMap x a -> IntLikeMap x a Source #

insertLookupWithKey :: Coercible x Int => (x -> a -> a -> a) -> x -> a -> IntLikeMap x a -> (Maybe a, IntLikeMap x a) Source #

Deletion/Update

delete :: Coercible x Int => x -> IntLikeMap x a -> IntLikeMap x a Source #

adjust :: Coercible x Int => (a -> a) -> x -> IntLikeMap x a -> IntLikeMap x a Source #

adjustWithKey :: Coercible x Int => (x -> a -> a) -> x -> IntLikeMap x a -> IntLikeMap x a Source #

update :: Coercible x Int => (a -> Maybe a) -> x -> IntLikeMap x a -> IntLikeMap x a Source #

updateWithKey :: Coercible x Int => (x -> a -> Maybe a) -> x -> IntLikeMap x a -> IntLikeMap x a Source #

updateLookupWithKey :: Coercible x Int => (x -> a -> Maybe a) -> x -> IntLikeMap x a -> (Maybe a, IntLikeMap x a) Source #

alter :: Coercible x Int => (Maybe a -> Maybe a) -> x -> IntLikeMap x a -> IntLikeMap x a Source #

alterF :: (Coercible x Int, forall v u. Coercible v u => Coercible (f v) (f u), Functor f) => (Maybe a -> f (Maybe a)) -> x -> IntLikeMap x a -> f (IntLikeMap x a) Source #

Query

Lookup

lookup :: Coercible x Int => x -> IntLikeMap x a -> Maybe a Source #

(!?) :: Coercible x Int => IntLikeMap x a -> x -> Maybe a Source #

(!) :: Coercible x Int => IntLikeMap x a -> x -> a Source #

findWithDefault :: Coercible x Int => a -> x -> IntLikeMap x a -> a Source #

member :: Coercible x Int => x -> IntLikeMap x a -> Bool Source #

lookupLT :: Coercible x Int => x -> IntLikeMap x a -> Maybe (x, a) Source #

lookupGT :: Coercible x Int => x -> IntLikeMap x a -> Maybe (x, a) Source #

lookupLE :: Coercible x Int => x -> IntLikeMap x a -> Maybe (x, a) Source #

lookupGE :: Coercible x Int => x -> IntLikeMap x a -> Maybe (x, a) Source #

Size

Combine

Union

unionWith :: forall x a. (a -> a -> a) -> IntLikeMap x a -> IntLikeMap x a -> IntLikeMap x a Source #

unionWithKey :: Coercible x Int => (x -> a -> a -> a) -> IntLikeMap x a -> IntLikeMap x a -> IntLikeMap x a Source #

unions :: forall x f a. (forall v u. Coercible v u => Coercible (f v) (f u), Foldable f) => f (IntLikeMap x a) -> IntLikeMap x a Source #

unionsWith :: forall x f a. (forall v u. Coercible v u => Coercible (f v) (f u), Foldable f) => (a -> a -> a) -> f (IntLikeMap x a) -> IntLikeMap x a Source #

Difference

differenceWith :: forall x a b. (a -> b -> Maybe a) -> IntLikeMap x a -> IntLikeMap x b -> IntLikeMap x a Source #

differenceWithKey :: Coercible x Int => (x -> a -> b -> Maybe a) -> IntLikeMap x a -> IntLikeMap x b -> IntLikeMap x a Source #

Intersection

intersectionWith :: forall x a b c. (a -> b -> c) -> IntLikeMap x a -> IntLikeMap x b -> IntLikeMap x c Source #

intersectionWithKey :: Coercible x Int => (x -> a -> b -> c) -> IntLikeMap x a -> IntLikeMap x b -> IntLikeMap x c Source #

Symmetric difference

Disjoint

Compose

compose :: forall x a c. Coercible x Int => IntLikeMap x c -> IntLikeMap a x -> IntLikeMap a c Source #

Universal combining function

mergeWithKey :: Coercible x Int => (x -> a -> b -> Maybe c) -> (IntLikeMap x a -> IntLikeMap x c) -> (IntLikeMap x b -> IntLikeMap x c) -> IntLikeMap x a -> IntLikeMap x b -> IntLikeMap x c Source #

Traversal

Map

map :: forall x a b. (a -> b) -> IntLikeMap x a -> IntLikeMap x b Source #

mapWithKey :: Coercible x Int => (x -> a -> b) -> IntLikeMap x a -> IntLikeMap x b Source #

traverseWithKey :: (Coercible x Int, forall v u. Coercible v u => Coercible (t v) (t u), Applicative t) => (x -> a -> t b) -> IntLikeMap x a -> t (IntLikeMap x b) Source #

traverseMaybeWithKey :: (Coercible x Int, forall v u. Coercible v u => Coercible (f v) (f u), Applicative f) => (x -> a -> f (Maybe b)) -> IntLikeMap x a -> f (IntLikeMap x b) Source #

mapAccum :: forall x a b c. (a -> b -> (a, c)) -> a -> IntLikeMap x b -> (a, IntLikeMap x c) Source #

mapAccumWithKey :: Coercible x Int => (a -> x -> b -> (a, c)) -> a -> IntLikeMap x b -> (a, IntLikeMap x c) Source #

mapAccumRWithKey :: Coercible x Int => (a -> x -> b -> (a, c)) -> a -> IntLikeMap x b -> (a, IntLikeMap x c) Source #

mapKeys :: Coercible x Int => (x -> x) -> IntLikeMap x a -> IntLikeMap x a Source #

mapKeysWith :: Coercible x Int => (a -> a -> a) -> (x -> x) -> IntLikeMap x a -> IntLikeMap x a Source #

mapKeysMonotonic :: Coercible x Int => (x -> x) -> IntLikeMap x a -> IntLikeMap x a Source #

Folds

foldr :: forall x a b. (a -> b -> b) -> b -> IntLikeMap x a -> b Source #

foldl :: forall x a b. (a -> b -> a) -> a -> IntLikeMap x b -> a Source #

foldrWithKey :: Coercible x Int => (x -> a -> b -> b) -> b -> IntLikeMap x a -> b Source #

foldlWithKey :: Coercible x Int => (a -> x -> b -> a) -> a -> IntLikeMap x b -> a Source #

foldMapWithKey :: (Coercible x Int, Monoid m) => (x -> a -> m) -> IntLikeMap x a -> m Source #

Strict folds

foldr' :: forall x a b. (a -> b -> b) -> b -> IntLikeMap x a -> b Source #

foldl' :: forall x a b. (a -> b -> a) -> a -> IntLikeMap x b -> a Source #

foldrWithKey' :: Coercible x Int => (x -> a -> b -> b) -> b -> IntLikeMap x a -> b Source #

foldlWithKey' :: Coercible x Int => (a -> x -> b -> a) -> a -> IntLikeMap x b -> a Source #

Conversion

elems :: IntLikeMap x a -> [a] Source #

keys :: Coercible x Int => IntLikeMap x a -> [x] Source #

assocs :: Coercible x Int => IntLikeMap x a -> [(x, a)] Source #

Lists

toList :: Coercible x Int => IntLikeMap x a -> [(x, a)] Source #

Ordered lists

toAscList :: Coercible x Int => IntLikeMap x a -> [(x, a)] Source #

toDescList :: Coercible x Int => IntLikeMap x a -> [(x, a)] Source #

Filter

filter :: forall x a. (a -> Bool) -> IntLikeMap x a -> IntLikeMap x a Source #

filterWithKey :: Coercible x Int => (x -> a -> Bool) -> IntLikeMap x a -> IntLikeMap x a Source #

partition :: forall x a. (a -> Bool) -> IntLikeMap x a -> (IntLikeMap x a, IntLikeMap x a) Source #

partitionWithKey :: Coercible x Int => (x -> a -> Bool) -> IntLikeMap x a -> (IntLikeMap x a, IntLikeMap x a) Source #

spanAntitone :: Coercible x Int => (x -> Bool) -> IntLikeMap x a -> (IntLikeMap x a, IntLikeMap x a) Source #

mapMaybe :: forall x a b. (a -> Maybe b) -> IntLikeMap x a -> IntLikeMap x b Source #

mapMaybeWithKey :: Coercible x Int => (x -> a -> Maybe b) -> IntLikeMap x a -> IntLikeMap x b Source #

mapEither :: forall x a b c. (a -> Either b c) -> IntLikeMap x a -> (IntLikeMap x b, IntLikeMap x c) Source #

mapEitherWithKey :: Coercible x Int => (x -> a -> Either b c) -> IntLikeMap x a -> (IntLikeMap x b, IntLikeMap x c) Source #

split :: Coercible x Int => x -> IntLikeMap x a -> (IntLikeMap x a, IntLikeMap x a) Source #

Submap

isSubmapOf :: forall x a. Eq a => IntLikeMap x a -> IntLikeMap x a -> Bool Source #

isSubmapOfBy :: forall x a b. (a -> b -> Bool) -> IntLikeMap x a -> IntLikeMap x b -> Bool Source #

isProperSubmapOf :: forall x a. Eq a => IntLikeMap x a -> IntLikeMap x a -> Bool Source #

isProperSubmapOfBy :: forall x a b. (a -> b -> Bool) -> IntLikeMap x a -> IntLikeMap x b -> Bool Source #

Min/Max

findMin :: Coercible x Int => IntLikeMap x a -> (x, a) Source #

findMax :: Coercible x Int => IntLikeMap x a -> (x, a) Source #

deleteFindMin :: Coercible x Int => IntLikeMap x a -> ((x, a), IntLikeMap x a) Source #

deleteFindMax :: Coercible x Int => IntLikeMap x a -> ((x, a), IntLikeMap x a) Source #

updateMin :: forall x a. (a -> Maybe a) -> IntLikeMap x a -> IntLikeMap x a Source #

updateMax :: forall x a. (a -> Maybe a) -> IntLikeMap x a -> IntLikeMap x a Source #

updateMinWithKey :: Coercible x Int => (x -> a -> Maybe a) -> IntLikeMap x a -> IntLikeMap x a Source #

updateMaxWithKey :: Coercible x Int => (x -> a -> Maybe a) -> IntLikeMap x a -> IntLikeMap x a Source #

Extra

insertState :: Coercible x Int => (Maybe a -> b) -> x -> a -> IntLikeMap x a -> (b, IntLikeMap x a) Source #