git.iko.soy/typeable/validationt
on master help sign in
Add Semigroup instance for ghc-8.4 only
33541bfDmitry Bushev
src/Control/Monad/Validation.hs+3−5
@@ -17,7 +17,6 @@ import Data.Foldable as F
17import Data.List as L
17import Data.List as L
18import Data.Map.Strict as M
18import Data.Map.Strict as M
19import Data.Monoid
19import Data.Monoid
20−import qualified Data.Semigroup as S
21import Data.Text as T
20import Data.Text as T
22import Data.Vector as V
21import Data.Vector as V
23import Test.QuickCheck
22import Test.QuickCheck
@@ -50,7 +49,7 @@ instance (Ord k) => At (MonoidMap k v) where
50 at key = _MonoidMap . at key
49 at key = _MonoidMap . at key
51
50
52#if MIN_VERSION_base(4,11,0)
51#if MIN_VERSION_base(4,11,0)
53−instance (Ord k, S.Semigroup v) => S.Semigroup (MonoidMap k v) where
52+instance (Ord k, Semigroup v) => Semigroup (MonoidMap k v) where
54 (<>) = mmAppend
53 (<>) = mmAppend
55#endif
54#endif
56
55
@@ -77,12 +76,11 @@ instance (Ord k, FromJSON k, FromJSON v) => FromJSON (MonoidMap k v) where
77 return (key, val)
76 return (key, val)
78
77
79#if MIN_VERSION_base(4,11,0)
78#if MIN_VERSION_base(4,11,0)
80−mmAppend :: (Ord k, S.Semigroup v) => MonoidMap k v -> MonoidMap k v -> MonoidMap k v
79+mmAppend :: (Ord k, 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
80#else
83mmAppend :: (Ord k, Monoid v) => MonoidMap k v -> MonoidMap k v -> MonoidMap k v
81mmAppend :: (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
82#endif
83+mmAppend (MonoidMap a) (MonoidMap b) = MonoidMap $ M.unionWith (<>) a b
86
84
87-- | Convenient for 'vZoom' as first artument. Will prevent generation
85-- | Convenient for 'vZoom' as first artument. Will prevent generation
88-- of map with 'mempty' values
86-- of map with 'mempty' values
validationt.cabal−2
@@ -39,7 +39,5 @@ library
39 , transformers-base
39 , transformers-base
40 , transformers-lift
40 , transformers-lift
41 , vector
41 , vector
42− if impl(ghc < 8.0)
43− build-depends: semigroups == 0.18.*
44 hs-source-dirs: src
42 hs-source-dirs: src
45 default-language: Haskell2010
43 default-language: Haskell2010