-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Map with a Semigroup and Monoid instances delegating to Semigroup of the elements -- -- Please see the README on GitHub at -- https://github.com/koterpillar/appendmap#readme @package appendmap @version 0.1.5 -- | A wrapper for Map with a Semigroup and Monoid -- instances that delegate to the individual keys. module Data.Map.Append.Lazy -- | Map wrapper with Semigroup and Monoid instances that -- delegate to the keys. It satisfies the following property: -- --
-- lookup k (m1 <> m2) === lookup k m1 <> lookup k m2 -- where -- lookup key = Map.lookup key . unAppendMap --newtype AppendMap k v AppendMap :: Map k v -> AppendMap k v [unAppendMap] :: AppendMap k v -> Map k v instance (GHC.Show.Show k, GHC.Show.Show v) => GHC.Show.Show (Data.Map.Append.Lazy.AppendMap k v) instance (GHC.Classes.Eq k, GHC.Classes.Eq v) => GHC.Classes.Eq (Data.Map.Append.Lazy.AppendMap k v) instance (GHC.Classes.Ord k, GHC.Classes.Ord v) => GHC.Classes.Ord (Data.Map.Append.Lazy.AppendMap k v) instance (GHC.Classes.Ord k, GHC.Base.Semigroup v) => GHC.Base.Semigroup (Data.Map.Append.Lazy.AppendMap k v) instance (GHC.Classes.Ord k, GHC.Base.Semigroup v) => GHC.Base.Monoid (Data.Map.Append.Lazy.AppendMap k v) module Data.Map.Append -- | A wrapper for Map with a Semigroup and Monoid -- instances that delegate to the individual keys. module Data.Map.Append.Strict -- | Map wrapper with Semigroup and Monoid instances that -- delegate to the keys. It satisfies the following property: -- --
-- lookup k (m1 <> m2) === lookup k m1 <> lookup k m2 -- where -- lookup key = Map.lookup key . unAppendMap --newtype AppendMap k v AppendMap :: Map k v -> AppendMap k v [unAppendMap] :: AppendMap k v -> Map k v instance (GHC.Show.Show k, GHC.Show.Show v) => GHC.Show.Show (Data.Map.Append.Strict.AppendMap k v) instance (GHC.Classes.Eq k, GHC.Classes.Eq v) => GHC.Classes.Eq (Data.Map.Append.Strict.AppendMap k v) instance (GHC.Classes.Ord k, GHC.Classes.Ord v) => GHC.Classes.Ord (Data.Map.Append.Strict.AppendMap k v) instance (GHC.Classes.Ord k, GHC.Base.Semigroup v) => GHC.Base.Semigroup (Data.Map.Append.Strict.AppendMap k v) instance (GHC.Classes.Ord k, GHC.Base.Semigroup v) => GHC.Base.Monoid (Data.Map.Append.Strict.AppendMap k v) -- | A Semigroup-based counter type. module Data.Map.Counter -- | A Semigroup-based counter type. -- --
-- let counts = mkCounter 1 <> mkCounter 2 <> mkCounter 1 :: Counter Int -- getCounts counts === Map.fromList [(1, 2), (2, 1)] --type Counter key = AppendMap key (Sum Int) -- | Counter that has a single occurrence for a single item. mkCounter :: Ord key => key -> Counter key -- | Get counts as a map. getCounts :: Counter key -> Map key Int