@@ -30,7 +30,6 @@ import Control.Lens hiding ((.=))
30import Control.Monad.Base
30import Control.Monad.Base
31import Control.Monad.Catch
31import Control.Monad.Catch
32import Control.Monad.Except
32import Control.Monad.Except
33−import Control.Monad.Fail
34import Control.Monad.State.Strict
33import Control.Monad.State.Strict
35import Control.Monad.Trans.Control
34import Control.Monad.Trans.Control
36import Data.Aeson
35import Data.Aeson
@@ -38,11 +37,14 @@ import Data.Foldable as F
38import Data.Functor
37import Data.Functor
39import Data.List as L
38import Data.List as L
40import Data.Map.Strict as M
39import Data.Map.Strict as M
42import Data.Text as T
40import Data.Text as T
43import Data.Vector as V
41import Data.Vector as V
44import Test.QuickCheck
42import Test.QuickCheck
44+#if MIN_VERSION_base(4,18,0)
46+import Control.Monad.Fix
47-- | Collects all thrown warnings in 'StateT' and errors
49-- | Collects all thrown warnings in 'StateT' and errors
48-- in 'ExceptT' into a single value using 'Monoid'.
50-- in 'ExceptT' into a single value using 'Monoid'.
@@ -86,7 +88,7 @@ instance (Ord k, Semigroup v) => Semigroup (MonoidMap k v) where
87instance (Ord k, Monoid v) => Monoid (MonoidMap k v) where
89instance (Ord k, Monoid v) => Monoid (MonoidMap k v) where
88 mempty = MonoidMap M.empty
90 mempty = MonoidMap M.empty
89− mappend = mmAppend
91+ mappend = (<>)
91instance (ToJSON k, ToJSON v) => ToJSON (MonoidMap k v) where
93instance (ToJSON k, ToJSON v) => ToJSON (MonoidMap k v) where
92 toJSON (MonoidMap m) = toJSON $ L.map toObj $ M.toList m
94 toJSON (MonoidMap m) = toJSON $ L.map toObj $ M.toList m