{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Data.IntMap.Polymorphic.Type where

import qualified Data.IntMap.Strict as M

newtype IntMap k v = IntMap { IntMap k v -> IntMap v
rep :: M.IntMap v }
  deriving (b -> IntMap k v -> IntMap k v
NonEmpty (IntMap k v) -> IntMap k v
IntMap k v -> IntMap k v -> IntMap k v
(IntMap k v -> IntMap k v -> IntMap k v)
-> (NonEmpty (IntMap k v) -> IntMap k v)
-> (forall b. Integral b => b -> IntMap k v -> IntMap k v)
-> Semigroup (IntMap k v)
forall b. Integral b => b -> IntMap k v -> IntMap k v
forall a.
(a -> a -> a)
-> (NonEmpty a -> a)
-> (forall b. Integral b => b -> a -> a)
-> Semigroup a
forall k v. NonEmpty (IntMap k v) -> IntMap k v
forall k v. IntMap k v -> IntMap k v -> IntMap k v
forall k v b. Integral b => b -> IntMap k v -> IntMap k v
stimes :: b -> IntMap k v -> IntMap k v
$cstimes :: forall k v b. Integral b => b -> IntMap k v -> IntMap k v
sconcat :: NonEmpty (IntMap k v) -> IntMap k v
$csconcat :: forall k v. NonEmpty (IntMap k v) -> IntMap k v
<> :: IntMap k v -> IntMap k v -> IntMap k v
$c<> :: forall k v. IntMap k v -> IntMap k v -> IntMap k v
Semigroup, Semigroup (IntMap k v)
IntMap k v
Semigroup (IntMap k v)
-> IntMap k v
-> (IntMap k v -> IntMap k v -> IntMap k v)
-> ([IntMap k v] -> IntMap k v)
-> Monoid (IntMap k v)
[IntMap k v] -> IntMap k v
IntMap k v -> IntMap k v -> IntMap k v
forall a.
Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a
forall k v. Semigroup (IntMap k v)
forall k v. IntMap k v
forall k v. [IntMap k v] -> IntMap k v
forall k v. IntMap k v -> IntMap k v -> IntMap k v
mconcat :: [IntMap k v] -> IntMap k v
$cmconcat :: forall k v. [IntMap k v] -> IntMap k v
mappend :: IntMap k v -> IntMap k v -> IntMap k v
$cmappend :: forall k v. IntMap k v -> IntMap k v -> IntMap k v
mempty :: IntMap k v
$cmempty :: forall k v. IntMap k v
$cp1Monoid :: forall k v. Semigroup (IntMap k v)
Monoid)