@@ -16,7 +16,6 @@ module Control.Monad.Validation
16 , vWarningL
16 , vWarningL
20 , mmSingleton
19 , mmSingleton
21 , setMempty
20 , setMempty
22 , neConcat
21 , neConcat
@@ -38,14 +37,11 @@ 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
41import Data.Text as T
41import Data.Text as T
42import Data.Vector as V
42import Data.Vector as V
43import Test.QuickCheck
43import Test.QuickCheck
45−#if MIN_VERSION_mtl(2,3,0)
47−import Control.Monad.Fix
50-- | Collects all thrown warnings in 'StateT' and errors
46-- | Collects all thrown warnings in 'StateT' and errors
51-- in 'ExceptT' into a single value using 'Monoid'.
47-- in 'ExceptT' into a single value using 'Monoid'.
@@ -89,7 +85,7 @@ instance (Ord k, Semigroup v) => Semigroup (MonoidMap k v) where
90instance (Ord k, Monoid v) => Monoid (MonoidMap k v) where
86instance (Ord k, Monoid v) => Monoid (MonoidMap k v) where
91 mempty = MonoidMap M.empty
87 mempty = MonoidMap M.empty
92− mappend = (<>)
88+ mappend = mmAppend
94instance (ToJSON k, ToJSON v) => ToJSON (MonoidMap k v) where
90instance (ToJSON k, ToJSON v) => ToJSON (MonoidMap k v) where
95 toJSON (MonoidMap m) = toJSON $ L.map toObj $ M.toList m
91 toJSON (MonoidMap m) = toJSON $ L.map toObj $ M.toList m
@@ -147,12 +143,12 @@ neConcat f a
147textErrors :: [Text] -> Maybe Text
143textErrors :: [Text] -> Maybe Text
148textErrors = neConcat (\a b -> a <> ", " <> b)
144textErrors = neConcat (\a b -> a <> ", " <> b)
150−-- | Returns 'mempty' instead of error if no warnings have occurred.
146+-- | Returns 'mempty' instead of error if no warnings have occured.
151-- Returns 'Nothing' as the second element of tuple if computation was
147-- Returns 'Nothing' as the second element of tuple if computation was
152-- interrupted by 'vError'.
148-- interrupted by 'vError'.
154-- Returns all concatenated errors and warnings and the result if no
150-- Returns all concatenated errors and warnings and the result if no
155−-- errors have occurred (warnings could have occurred).
151+-- errors have occured (warnings could have occured).
158-- runValidationT $ do
154-- runValidationT $ do
@@ -178,7 +174,7 @@ runValidationT (ValidationT m) = do
178 Right a -> (warnings, Just a)
174 Right a -> (warnings, Just a)
180-- | Like 'runValidationT' but doesn't return the result
176-- | Like 'runValidationT' but doesn't return the result
181−-- if any warning has occurred.
177+-- if any warning has occured.
184-- runValidationTEither $ do
180-- runValidationTEither $ do
@@ -289,12 +285,3 @@ vZoomL
289 -> ValidationT a m x
285 -> ValidationT a m x
290 -> ValidationT b m x
286 -> ValidationT b m x
291vZoomL l = vZoom (setMempty l)
287vZoomL l = vZoom (setMempty l)
293−-- | Turn any warnings the have occurred into errors.
295− :: (Monad m, Monoid a, Eq a)
296− => ValidationT a m x
297− -> ValidationT a m x
299− err <- lift $ runValidationTEither m
300− either vError return err