git.iko.soy/typeable/validationt
on master help sign in
Add support for ghc-8.4
426fca0Dmitry Bushev
src/Control/Monad/Validation.hs+5
@@ -16,6 +16,7 @@ import Data.Foldable as F
16import Data.List as L
16import Data.List as L
17import Data.Map.Strict as M
17import Data.Map.Strict as M
18import Data.Monoid
18import Data.Monoid
19+import qualified Data.Semigroup as S
19import Data.Text as T
20import Data.Text as T
20import Data.Vector as V
21import Data.Vector as V
21import Test.QuickCheck
22import Test.QuickCheck
@@ -47,6 +48,10 @@ instance (Ord k) => Ixed (MonoidMap k v) where
47instance (Ord k) => At (MonoidMap k v) where
48instance (Ord k) => At (MonoidMap k v) where
48 at key = _MonoidMap . at key
49 at key = _MonoidMap . at key
49
50
51+instance (Ord k, S.Semigroup v) => S.Semigroup (MonoidMap k v) where
52+ (MonoidMap a) <> (MonoidMap b) =
53+ MonoidMap $ M.unionWith (S.<>) a b
54+
50instance (Ord k, Monoid v) => Monoid (MonoidMap k v) where
55instance (Ord k, Monoid v) => Monoid (MonoidMap k v) where
51 mempty = MonoidMap M.empty
56 mempty = MonoidMap M.empty
52 mappend (MonoidMap a) (MonoidMap b) =
57 mappend (MonoidMap a) (MonoidMap b) =
validationt.cabal+2−2
@@ -18,8 +18,6 @@ cabal-version: >=1.10
18
18
19library
19library
20 exposed-modules: Control.Monad.Validation
20 exposed-modules: Control.Monad.Validation
21− -- other-modules:
22− -- other-extensions:
23 build-depends: base >=4.8 && < 5
21 build-depends: base >=4.8 && < 5
24 , aeson >= 1.0
22 , aeson >= 1.0
25 , containers
23 , containers
@@ -33,5 +31,7 @@ library
33 , transformers-base
31 , transformers-base
34 , transformers-lift
32 , transformers-lift
35 , vector
33 , vector
34+ if impl(ghc < 8.0)
35+ build-depends: semigroups == 0.18.*
36 hs-source-dirs: src
36 hs-source-dirs: src
37 default-language: Haskell2010
37 default-language: Haskell2010