From 7231fb93beac6529c97bccbf4d5822c4007bd9b2 Mon Sep 17 00:00:00 2001 From: Michael Xavier Date: Mon, 23 Feb 2015 22:13:39 -0800 Subject: [PATCH] Add Monoid instance for StrMap --- README.md | 7 +++++++ src/Data/StrMap.purs | 3 +++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index b70fb36a..f507b5f4 100644 --- a/README.md +++ b/README.md @@ -430,6 +430,13 @@ instance semigroupStrMap :: (P.Semigroup a) => P.Semigroup (StrMap a) ``` +#### `monoidStrMap` + +``` purescript +instance monoidStrMap :: (P.Semigroup a) => Monoid (StrMap a) +``` + + ## Module Data.StrMap.ST diff --git a/src/Data/StrMap.purs b/src/Data/StrMap.purs index df5ab307..0920d7ce 100644 --- a/src/Data/StrMap.purs +++ b/src/Data/StrMap.purs @@ -293,3 +293,6 @@ map = P.(<$>) instance semigroupStrMap :: (P.Semigroup a) => P.Semigroup (StrMap a) where (<>) m1 m2 = mutate (\s -> foldM (\s k v2 -> SM.poke s k (runFn4 _lookup v2 (\v1 -> v1 P.<> v2) k m2)) s m1) m2 + +instance monoidStrMap :: (P.Semigroup a) => Monoid (StrMap a) where + mempty = empty