git.iko.soy/typeable/validationt
on master help sign in
Fix review comments
commit2a7adf2bdc6df0eb47028ae3e6d86033d9cb8de9 authorDmitry Bushev <bushevdv@gmail.com> dateMon 23 Apr 2018, 10:46 (8 years ago) parentb1ec015
1 file changed+13−4
src/Control/Monad/Validation.hs+13−4
src/Control/Monad/Validation.hs+13−4
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE GeneralizedNewtypeDeriving #-}
23{-# LANGUAGE OverloadedStrings #-}
34{-# LANGUAGE TemplateHaskell #-}
@@ -48,14 +49,14 @@ instance (Ord k) => Ixed (MonoidMap k v) where
4849instance (Ord k) => At (MonoidMap k v) where
4950 at key = _MonoidMap . at key
5051
52+#if MIN_VERSION_base(4,11,0)
5153instance (Ord k, S.Semigroup v) => S.Semigroup (MonoidMap k v) where
52− (MonoidMap a) <> (MonoidMap b) =
53− MonoidMap $ M.unionWith (S.<>) a b
54+ (<>) = mmAppend
55+#endif
5456
5557instance (Ord k, Monoid v) => Monoid (MonoidMap k v) where
5658 mempty = MonoidMap M.empty
57− mappend (MonoidMap a) (MonoidMap b) =
58− MonoidMap $ M.unionWith (<>) a b
59+ mappend = mmAppend
5960
6061instance (ToJSON k, ToJSON v) => ToJSON (MonoidMap k v) where
6162 toJSON (MonoidMap m) = toJSON $ L.map toObj $ M.toList m
@@ -75,6 +76,14 @@ instance (Ord k, FromJSON k, FromJSON v) => FromJSON (MonoidMap k v) where
7576 val <- obj .: "value"
7677 return (key, val)
7778
79+#if MIN_VERSION_base(4,11,0)
80+mmAppend :: (Ord k, S.Semigroup v) => MonoidMap k v -> MonoidMap k v -> MonoidMap k v
81+mmAppend (MonoidMap a) (MonoidMap b) = MonoidMap $ M.unionWith (S.<>) a b
82+#else
83+mmAppend :: (Ord k, Monoid v) => MonoidMap k v -> MonoidMap k v -> MonoidMap k v
84+mmAppend (MonoidMap a) (MonoidMap b) = MonoidMap $ M.unionWith (<>) a b
85+#endif
86+
7887-- | Convenient for 'vZoom' as first artument. Will prevent generation
7988-- of map with 'mempty' values
8089mmSingleton :: (Eq v, Monoid v, Ord k) => k -> v -> MonoidMap k v